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

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

问题描述:

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

我删除了'bash'标签,因为这个问题是不是Unix的所有相关 – Allan

%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在这里),然后失败”(对面是&&“如果前面的命令成功”)

我不知道您是否需要该服务进行运行或停止。不同的只是使用&&||