我创建了一个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
)
%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。差异只是使用&&
或||
)