根据时间戳/日期从文本文件中解析行,包括AM&下午

时间:2018-01-25 14:14:53

标签: powershell parsing datetime logging

我发现了以下帖子,但它没有涵盖AM& amp; PM我试图从文本文件解析的行。我试图修改帖子提供的内容,但似乎无法使其发挥作用。

Delete lines based on time stamp in text file PowerShell

有人创建了我们的文本文件以包含AM& PM直接在时间戳之后,但我们的格式与帖子中包含的内容略有不同。它们显示为:

9/1/2016 12:00:06 AM
9/1/2016 12:15:06 AM
9/1/2016 12:30:06 AM
9/1/2016 12:45:08 AM

然后每行后跟" - 状态"

我认为它看起来像这样:

gc .\log.txt | %{if ([datetime][regex]::match($_,'^[0-9]{2}/[0-9]{2}/[0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2}').Value -gt (Get-Date).AddDays(-90)) {$_}} > .\purgedlogfile.txt

但我不确定如何将AM或PM纳入

1 个答案:

答案 0 :(得分:0)

I love regexes but I only use them when I must. This should do it:

gc .\log.txt | ?{if (Get-Date ('{0} {1} {2}' -f $_.Split(' ')[0..2])) -gt (Get-Date).AddDays(-90))} > .\purgedlogfile.txt