我是Powershell的新手,我需要某种Powershell脚本。日志文件位于D:\ Example \ Example \ log \文件夹中。它像log20140513.log一样每天创建。
我只想查看日志文件的最后1小时数据搜索"运行状态为假!"如果它找到,它应该返回1,否则返回0.那就是它。
这就是我所拥有的:
$file = "D:\EnterAccount\Gecko\log\log20140513.log"
cat $file | Select-String "ERROR" -SimpleMatch | select -expand line | foreach {
$_ -match '(.+)\s[ERROR]\s\.\s(.+)' | out-null
new-object psobject -Property @{
Timestamp = [datetime]$matches[1];Error = $matches[2]
} | where {$_.timestamp -gt (get-date).AddDays(-1)
}
}
答案 0 :(得分:1)
您可以创建所有日志文件的数组,然后在每个日志文件上运行代码:
$files = get-childitem D:\EnterAccount\Gecko\log\ -filter *.log | ?{ $_.lastwritetime -gt ((get-date).addHours(-1)) }
$files | foreach{
cat $_ | Select-String "ERROR" -SimpleMatch | select -expand line | foreach {
$_ -match '(.+)\s[ERROR]\s\.\s(.+)' | out-null
new-object psobject -Property @{
Timestamp = [datetime]$matches[1];Error = $matches[2]
} | where {$_.timestamp -gt (get-date).AddDays(-1)
}
}