Windows Service Name

我們常會有些服務停用需要時間,所以如湖你的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是服務代碼,可以在服務清單中雙擊服務後看到服務細節,其中的服務名稱就是我們要的字串

Windows Service Name

但如果你不放心要怎麼確定服務已經停止?

這時候就可以用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

 

留下一個答复

請輸入你的評論!
請在這裡輸入你的名字