如何根据日志文件中重复的错误重新启动 Windows 程序

如何根据日志文件中重复的错误重新启动 Windows 程序

当 Windows 软件重复出现错误消息并将其写入其目录中的日志文件时,如何才能自动重新启动该软件?

我研究过许多软件产品,例如 wintail、beartail 等,但它们都只能“跟踪”日志文件,而不能对错误消息采取行动。

我想要实现的是:C:\examplesoftware\log.txt

2019-11-08 21:20:43 错误,会话超时,服务器
2019-11-08 21:20:43 错误,会话超时,服务器
2019-11-08 21:20:43 错误,会话超时,服务器

当第三次出现“会话超时到服务器”时,我想退出软件并重新启动它。

提前感谢任何有用的建议

答案1

以下.bat文件将循环直至停止,每秒提取所有包含字符串“ERROR”的行,计数这些行(find /c /v ""),将计数与“3”进行比较,如果相等,则执行操作:

:loop
FOR /F "tokens=* USEBACKQ" %%F IN (`findstr "ERROR" "C:\examplesoftware\log.txt" ^| find /c /v ""`) DO set NUMBER=%%F

if "%NUMBER%"=="3" goto found    
timeout /t 1 > NUL
goto loop
:found
echo Do it here
goto loop

如果程序可能在一秒钟内写入超过三行错误,则可以在合理范围内添加更多 IF 命令以获得更高的数字。

相关内容