从powershell

时间:2015-05-30 02:37:24

标签: date powershell datetime

我有一个名为events.csv的csv文件,其中包含以下事件列表

"Severity","EventId","Event","Trigger (MM/DD/YYYY 24H)","SourceID","Source"
Information,1866,vol.resize.fail:VolumeResizeFailed,05/28/2015 12:25:42,286,controller1:/volA
Information,1865,vol.resize.success:VolumeResizeSuccess,05/28/2015 12:24:19,286,controller1:/volA

现在我想从当前时间少于24小时的TriggerColumn(时间)文件中获取条目列表。

所以我当前的代码看起来像这样

$dateToCompare = (Get-date).AddDays(-1)

$eventsList = Import-Csv $eventsReportFileName  | where-object {$_."Trigger (MM/DD/YYYY 24H)" -gt $dateToCompare} 

日期比较工作正在进行,因为它说它们的类型不同

PS H:\> $a."Trigger (MM/DD/YYYY 24H)"

05/28/2015 12:25:42

05/28/2015 12:24:19

PS H:\> $dateToCompare = (Get-date).AddDays(-1)

PS H:\> $dateToCompare

Thursday, May 28, 2015 7:24:30 PM

但是,如果我的类型,我无法格式化日期。 CSV文件的输出是固定的,无法更改。我所能做的就是改变Get-date的格式 播放。

赞赏任何想解决的想法

1 个答案:

答案 0 :(得分:2)

如果日期来自csv,则它是字符串而不是日期时间对象。不要将(Get-Date).AddDays(-1)转换为字符串,而是将MM / DD / YYYY 24H转换为DateTime对象。

喜欢这个。

$eventsList = Import-Csv $eventsReportFileName | Where-Object -FilterScript {[DateTime]::Parse($_."Trigger (MM/DD/YYYY 24H)") -gt $dateToCompare}