簡體   English   中英

如果尚未停止,則 SC 命令停止

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM