我是PowerShell的新手,我正在尝试运行一个脚本,该脚本检查日志文件的最后5行中的错误代码。如果脚本发现错误,它应该重新启动服务,否则它应该循环回到顶部并再次执行。
if(Get-Content C:\x\x\x\Log.log -last 5 | Select-String -pattern "Error" -Quiet){
Restart-Service -Name xxx -Force
}
else
我是PowerShell的新手,我正在尝试运行一个脚本,该脚本检查日志文件的最后5行中的错误代码。如果脚本发现错误,它应该重新启动服务,否则它应该循环回到顶部并再次执行。
if(Get-Content C:\x\x\x\Log.log -last 5 | Select-String -pattern "Error" -Quiet){
Restart-Service -Name xxx -Force
}
else
2条答案
按热度按时间toiithl61#
到目前为止,您的代码是正确的。但是,
-last
参数在Get-Content
中不存在。请使用-Tail
尝试。More infos:https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-content?view=powershell-7.1
wqlqzqxt2#
您需要将代码包含在一个无限循环中(不推荐这样做):
这将读取日志的最后5行,如果这些行中的任何一行与提供的模式匹配,则它将写出正在重新启动服务,然后强制重新启动服务,等待5秒并返回到开始并再次检查。