[英]SC command stop if not already stopped
我正在構建一個過程,該過程涉及在刪除某些文件之前運行 SC 命令以停止服務。 但是,如果服務已停止,則此過程將失敗,因為此命令會返回錯誤。 有沒有辦法跳過此錯誤或僅在尚未停止時停止。 我可以用 powershell 做到這一點,但只是想知道是否有一個帶有某種命令行開關的選項?
像這樣的事情會做必要的事情,它會在運行停止命令之前檢查 SCQuery 的結果是否為“4 Running”。
注意我有腳本檢查以在 3 秒暫停后再次輸出狀態,因此如果您需要稍作更改,您可以使用它來等待狀態。
@(
SETLOCAL
ECHO OFF
SET "_ServiceName=Your SVC"
SET "_Action=Stop"
SET "_Pause=ping 5.1.1.1 -n 1 -w 3000 >NUL"
)
CALL :Main
(
ENDLOCAL
EXIT /B
)
:Main
(
SC query "%_ServiceName%" | FIND /I "STATE : 4 RUNNING"
) && (
SC %_Action% "%_ServiceName%"
)
ECHO.Pausing a few seconds...
%_Pause%
SC query "%_ServiceName%" | FIND /I "STATE"
%_Pause%
GOTO :EOF
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.