管道变量到get-date来转换字符串/格式?

时间:2016-07-20 01:25:58

标签: date powershell

我正在尝试将许多日期从某些.log文件中的字符串转换为其他格式。他们目前显示如下:

2016年6月29日星期三下午12:15:27。

我需要他们采用06-29-16 12:15:27格式。

我必须对每个文件进行数千次转换。我试图想办法通过Powershell自动化转换。

下面的示例只是前5行。

到目前为止,我得到的最接近的是($ date包含字符串:

$日期
2016年6月29日星期三下午12:04:51
2016年6月29日星期三下午12:05:58
2016年6月29日星期三下午12:07:00 2016年6月29日星期三下午12:08:02
2016年6月29日星期三下午12:09:03

$ dates | foreach($ _){get-date -Format“MM-dd-yy hh:mm:ss”}返回:
07-19-16 08:11:16
07-19-16 08:11:16
07-19-16 08:11:16
07-19-16 08:11:16
07-19-16 08:11:16
07-19-16 08:11:16
07-19-16 08:11:16

这只是推出了当前的日期/时间。我需要将变量中的日期转换为它们的伴随日期/格式。

我真的很想丢失将日期转换为其他格式。不知怎的,我知道我的语法错了。但是我尝试过的所有迭代都不能正常工作!

我是Powershell的新手,但一直在努力解决这个问题。这个让我很紧张。

有没有办法用TONS字符串管道变量并更改日期格式?

或者我应该在其他地方寻找更简单,更优雅的解决方案?

帮助?

1 个答案:

答案 0 :(得分:2)

问题在于foreach正在运作的方式:

$dates | foreach ($_) {get-date -Format "MM-dd-yy hh:mm:ss"}

请改为尝试:

$dates | foreach {$_ | get-date -Format "MM-dd-yy hh:mm:ss"}

甚至更简单:

$dates | get-date -Format "MM-dd-yy hh:mm:ss"