Я пишу сценарии, используя appcmd
. Я бы хотел проверить, существует ли данный сайт и выполняет ли какое-либо действие. В этом случае удалите его.
appcmd list app | find "mySite"
Итак, если find "mySite" вернет какой-либо текст, я хотел бы выполнить оператор удаления. Теперь я понимаю, что могу попытаться удалить сайт и проигнорировать ошибку, но это дает (потенциально) запутанный результат.
Я пробовал что-то вроде следующего, где я предполагаю, что просто использовал бы переменную appExists
в операторе if, но он просто остается пустым. Всегда.
set appExists=appcmd list app | find "mySite"
echo %~n0: %appExists%
Как я могу этого добиться?
Вы могли сделать:
for /f "delims=" %%f in ('appcmd list app ^| find "mySite"') do (
set appExists=%%f
)
echo %~n0: %appExists%
Но тогда вы можете пропустить установку переменной окружения и добавить тест if и встроить удаление в цикл for:
for /f "delims=" %%f in ('appcmd list app ^| find "mySite"') do (
rem appcmd whatever whatever remove %%f here
)
(И проверьте параметры (for /?
) использовать delims=
и tokens=
чтобы получить нужную вам часть линии напрямую).