我正在构建一个过程,该过程涉及在删除某些文件之前运行SC命令以停止服务。但是,如果该服务已经停止,则此过程将失败,因为此命令返回错误。 有没有一种方法可以跳过此错误,或者仅在尚未停止时才停止。我可以使用powershell做到这一点,但只是想知道是否存在带有某种命令行开关的选项?
答案 0 :(得分:0)
需要这样做,它会在运行stop命令之前检查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