2016-08-10 3 views
0

"test"という名前で始まる5つのサービスがあります。 サービスが停止した場合に備えて、それぞれをチェックして起動するバッチファイルが必要です。実行されておらず、同じ名前で始まるすべてのサービスを開始する

私は1つのサービスの場合で動作している、このようなスクリプトを持っているが、私は、複数のサービスにそれを変更する方法を知らない:?

net start | find "test gap" > nul 2>&1 
if not .%errorlevel%.==.0. goto startservice 
goto skip 


:startservice 
net start "Cem Execution Service" 
echo service restarts @ %date% %time% >> C:\checklog.txt 

:skip 
pause 
+0

正しいサービス名で各サービスのコードを繰り返すことはできませんか? – Squashman

答えて

0

あなたがループにnet startを入れることができます。

例:バッチファイルから実行していない場合

for /f "tokens=* delims= " %%a in ('net start ^| find /i "Test"') do net start "%%a" 

%a%%aを交換してください。

編集:あなたも、それは我々がsetlocal enabledelayedexpansion

setlocal enabledelayedexpansion 
for /f "tokens=* delims= " %%a in ('net start ^| find /i "Test"') do net start "%%a" && echo service restarts @ !date! !time! >> C:\checklog.txt 

注意が必要ともう少しトリッキー取得するだけでなくタイムスタンプでそれをログに記録する場合:&&はそれだけでネット開始場合に実行することを意味し成功しました。したがって、サービスの開始に失敗した場合、またはすでに開始されている場合は、サービスはログに記録されません。

関連する問題