我有一个名为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的格式 播放。
赞赏任何想解决的想法
答案 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}