我有输出日志文件的脚本,现在我需要读取该日志文件并为发现警告和错误的单词创建一个新的日志文件,并且需要它写入行号并从中输出错误代码错误为0-20,警告为21-40,但是每次我运行脚本时,ExitCodeLog.lg都是空的。
$file = 'H:\REPO\ADNEW\Testlog.log'#@(Get-ChildItem -Filter Remove-StallUserObjects_*.log)[-1]
$lineNumber = 0
$errorCode = 0
$warningCode = 21
$output = ForEach ($line in $file) {
$lineNumber++
if ($errorCode -eq 20) {
$errorCode = 0
}
if ($warningCode -eq 40) {
$warningCode = 21
}
if ($line -cmatch " ERROR: ") {
"$lineNumber $errorCode"
$errorCode++
}
if ($line -cmatch " WARNING: ") {
"$lineNumber $warningCode"
$warningCode++
}
}
$output | Out-File -FilePath 'H:\REPO\ADNEW\ExitCodeLog.log'
答案 0 :(得分:1)
第一个问题是$file
的内容是纯字符串。
您应该使用
$file = get-content 'H:\REPO\ADNEW\Testlog.log'
此外,您可以使用模运算符优化前两个if语句:
$errorcode = $errorcode % 20
$warningcode = 21 + ($warningcode % 20)