从CSV文件中获取不超过powershell中给定时间的条目列表



我有一个名为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

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

现在的代码是这样的

$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和的格式玩。

如果有什么想法可以解决

如果日期来自csv,则它是字符串而不是datetime对象。而不是把你的(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}

相关内容

  • 没有找到相关文章