使用PowerShell从记事本中提取日期和时间戳


XYZ Dispatcher Agent"XYZ"将于2019年11月12日星期二01:01:49启动任务"12821_1"。

上面是日志文件中的第一行,我想使用Powershell在变量中提取"2019年11日星期二01 01:49"。我尝试过使用REGEX,但遇到了问题。日志文件总是以这种行开头,所以我需要提取日期和时间来知道使用此日志的任务的开始时间。

如果您的文件始终具有文章中描述的格式,您可以执行以下操作:

$regex = 'w{3} w{3} d{2} d{2}:d{2}:d{2} d{4}'
$firstline = Get-Content '\somepathAgentLog_12821_1_12821_1.dsp.log' -TotalCount 1 |
Where-Object {$_ -match $regex}
$dateTimeString = $Matches[0]

$Matches自动变量是基于先前成功-match结果的值的哈希表。它需要成功匹配才能自动更新变量。您可以$null该值。


如果要捕获文件中的所有日期匹配项(每行一个(,可以使用以下方法。这将捕获索引集合($dateTimeString(中的所有日期。

$regex = 'w{3} w{3} d{2} d{2}:d{2}:d{2} d{4}'
$dateTimeString = (Select-String -Path '\somepathAgentLog_12821_1_12821_1.dsp.log' -Pattern $regex).Matches.Value
$dateTimeString[0] # First date

最新更新