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

问题描述 投票:0回答:1

我创建了一个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
    )
windows batch-file
1个回答
0
投票

%errorlevel%没有“数” - 它总是给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。差异只是使用&&||

© www.soinside.com 2019 - 2024. All rights reserved.