我创建了一个batch
脚本,能够在多次重启或暂停特定窗口服务后关闭计算机。
但是,我不知道如何让脚本自动运行而不是手动运行。我尝试在services.msc
下设置脚本文件并在此特定窗口服务下的后续失败后将其设置为 run a program (batch file)
,但是当我停止或重新启动服务3时手动完成时,批处理脚本根本没有运行。
所以我认为services.msc
只能在运行脚本之前识别失败而不是停止或重新启动服务。如果是这样,还有其他方法来运行脚本吗?
这是我的批处理脚本:
sc query "AVG Antivirus" | find "STOPPED"
if "%ERRORLEVEL%"=="3"
(
shutdown.exe /s /t 00
)
答案 0 :(得分:0)
%errorlevel%
不会“计数” - 它总是为{success}和0
提供NOT 0
(通常为1
,但取决于命令)。所以你必须实现一个自己的计数器:
set count=0
:loop
sc query "AVG Antivirus" | find "STOPPED" && set /a count+=1
if %count% geq 3 goto :continue
timeout /t 5
goto :loop
:continue
shutdown.exe /s /t 00
||
作为“如果上一个命令(此处find
失败”那么“(如果上一个命令成功,则相反的是&&
”)
我不确定您是否需要运行RUNNING或STOPPED。区别仅在于使用&&
或||
)