我正在尝试制作一个日志文件监视器。我有一个PowerShell命令,它给我计算我正在寻找的错误。
我现在如何存储该号码,5分钟后再次计算并报告差异?
这是我的代码:
(Get-Content "file.log" | Select-String -Pattern "HandleProcessingError" -AllMatches).count
答案 0 :(得分:1)
这是一种非常简单的方式,但它远非理想:
$ErrorCount = (Get-Content "file.log" | Select-String -Pattern "HandleProcessingError" -AllMatches).count
Start-Sleep -Seconds (60*5)
$NewErrorCount = (Get-Content "file.log" | Select-String -Pattern "HandleProcessingError" -AllMatches).count
$ErrorDifference = $NewErrorCount - $ErrorCount
Write-Output "There have been $ErrorDifference new errors"
最好的做法是将计数写入文件,然后将此脚本设置为每5分钟运行一次作为某种任务:
$ErrorCountFile = 'ErrorCount.XML'
$ErrorCount = (Get-Content "file.log" | Select-String -Pattern "HandleProcessingError" -AllMatches).count
If (Test-Path $ErrorCountFile) {
$PrevErrorCount = Import-Clixml -Path $ErrorCountFile
$ErrorDifference = $ErrorCount - $PrevErrorCount
Write-Output "There have been $ErrorDifference new errors"
}
$ErrorCount | Export-Clixml -Path $ErrorCountFile -Force