创建批处理脚本以在多次重启或停止服务后关闭计算机

时间:2017-12-18 01:45:00

标签: windows batch-file

我创建了一个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
    )

1 个答案:

答案 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。区别仅在于使用&&||