Цикл проверки состояния служб определенных окон - PullRequest
1 голос
/ 07 октября 2011

services.txt содержит: -

Plugplay
спулер
* DHCP
1004 *


Я хочу проверить состояние некоторых служб, указанных в файле services.txt. Я использую для цикла для этого.

@echo off
for /f %%a IN ('type services.txt') do call :chkservice %%a
goto :eof 

:chkservice 
sc query %a%

Вместо того, чтобы получать выходные данные для трех указанных служб, я получаю выходные данные, эквивалентные трем командам sc query (я полагаю).

Для отладки я попытался проверить, правильно ли переменная a получает значения или нет, и попробовал эту версию кода: -

@echo off
for /f %%a IN ('type services.txt') do call :chkservice %%a
goto :eof

:chkservice
@echo on
echo %a%

Этот код отображает только spooler и dhcp. Почему бы не подключить? Я полагаю, что обе проблемы связаны, но не уверен, как.

Любая помощь по этому вопросу будет принята с благодарностью.

1 Ответ

0 голосов
/ 07 октября 2011

Если вы вызываете функцию, ваши параметры находятся в% 1,% 2, ...% n, а не в %a%.
Параметры цикла for почти невидимы вне этого цикла.

Таким образом, ваш код должен выглядеть как

@echo off
for /f %%a IN ('type services.txt') do call :chkservice %%a
goto :eof

:chkservice
echo %1
goto :eof
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...