2017-12-18 78 views
0

我創建了一個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

回答

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在這裏),然後失敗」(對面是&&「如果前面的命令成功」)

我不知道您是否需要該服務進行運行或停止。不同的只是使用&&||

相關問題