我們常會有些服務停用需要時間,所以如湖你的Batch File把服務停掉馬上啟用,有可能會因為服務還沒完全停用而啟用失敗,因此我們會需要停用後停個一段時間再啟動服務,因此Batch內容可能如下
@ECHO OFF ECHO Stoping Service net stop ServiceName ECHO Start Waiting 300 Seconds timeout /T 300 ECHO Starting Servic net start ServiceName
其中的ServiceName是服務代碼,可以在服務清單中雙擊服務後看到服務細節,其中的服務名稱就是我們要的字串
但如果你不放心要怎麼確定服務已經停止?
這時候就可以用sc指令來檢查,如果確定已停了,就將服務啟動,範例如下
@ECHO OFF REM Testing at cmd : sc query "ServiceName" | findstr RUNNING sc query "ServiceName" | findstr RUNNING if %ERRORLEVEL% == 2 goto trouble if %ERRORLEVEL% == 1 goto stopped if %ERRORLEVEL% == 0 goto started echo unknown status goto end :trouble echo Got Trouble... goto end :stopped echo stopped, start it net start ServiceName goto end :started echo Service Already Started, Do Nothing goto end :end ECHO End of Check