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