2016-03-21 3 views
1

Я хотел бы проверить, работает ли служба. Если это, я бы хотел, чтобы его остановили. У меня есть много сервисов, поэтому я хочу, чтобы он запускался в массиве или сопутствующем.Сервис, который необходимо остановить в партии

Это, насколько я получил:

for /F "tokens=3 delims=: " %%H in ('sc query "MyServiceName" ^| findstr "  STATE"') do (
    if /I "%%H" NEQ "RUNNING" (
    REM Put your code you want to execute here 
    REM For example, the following line 
    net stop"MyServiceName" 
) 

Тогда у меня есть, например, Service1, service2, service3 и service4

Как это может быть addes заменяется без необходимости писать этот цикл в четыре раза ?

+0

Всегда просто запускать 'net stop xxx'? побочных эффектов нет, если xxx не работает. –

ответ

0
for %%S in ("service1" "service2" "service3") do (
    for /F "tokens=3 delims=: " %%H in ('sc query "%%~S" ^| findstr "  STATE"') do (
    if /I "%%H" NEQ "RUNNING" (
    REM Put your code you want to execute here 
    REM For example, the following line 
    net stop"%%~S" 
) 

) 

?

Смежные вопросы