Я работаю над пакетным сценарием, который будет принимать список серверов, проходить через них, находить все службы на каждом сервере, которые запускаются с определенным значением, и запрашивать эту службу. Однако, учитывая, что имена сервисов могут быть созданы с пробелами, мне нужно иметь возможность заключать в кавычки переменную for. Каков наилучший способ сделать это?
Я пробовал различные способы размещения escape-символов до и после переменной. Я также попытался установить переменную цикла в отдельную переменную.
@ECHO off
ECHO Please list servers to query.
SET list=
SET /P list=Server Names:
FOR %%a IN (%list%) DO (
FOR /F "Skip=1 Delims-" %%b IN ('wmic service where "name like 'ADOBE%%'" get Name ^| findstr /r /v "^$"') DO (
ECHO %%b
sc \\%%a query ^"%%b^"
)
)
pause
GOTO :eof
В выходных данных отображается имя службы любой службы, которая начинается с «ADOBE» на одном из серверов, указанных в% list%.
Я получаю "EnumQueryServiceStatus: OpenService FAILED 1060:
Указанная служба не существует как установленная служба. "
Когда я разрешаю эхо-скрипту, я вижу это:
ХО AdobeARMservice
"\ [servername] query" AdobeARMservice