Windows-Service

如何從腳本重新啟動 Windows 服務?

  • October 15, 2020

我有一個看起來像這樣的批處理腳本:

sc stop myservice
sc start myservice

它會出錯,因為 sc 不會等到服務停止。如何使用腳本重新啟動服務?

發布者希望確保在嘗試重新啟動服務之前停止服務。您可以在“sc 查詢”的輸出上使用循環,執行以下操作:

:stop
sc stop myservice

rem cause a ~10 second sleep before checking the service state
ping 127.0.0.1 -n 10 -w 1000 > nul

sc query myservice | find /I "STATE" | find "STOPPED"
if errorlevel 1 goto :stop
goto :start

:start
net start | find /i "My Service">nul && goto :start
sc start myservice

可能會遺漏一些東西,但我一直都在使用它:

網路停止“我的服務”

網路開始“我的服務”

或更短:

網路停止“我的服務”&& 網路開始“我的服務”

引用自:https://serverfault.com/questions/25081