Условные выражения в сценариях cmd

Я делаю сценарии, используя appcmd, Я хотел бы проверить, существует ли данный сайт и выполняет ли он какое-либо действие. В этом случае удалите его.

appcmd list app | find "mySite"

Итак, если find "mySite" возвращает какой-либо текст, я бы хотел выполнить оператор удаления. Теперь я понимаю, что могу попытаться удалить сайт и проигнорировать ошибку, но это дает (потенциально) запутанный вывод.

Я пробовал что-то вроде следующего, где я предполагаю, что я просто буду использовать переменную appExists в операторе if, но он просто оказывается пустым. Alayways.

set appExists=appcmd list app | find "mySite"
echo %~n0: %appExists%

Как мне этого добиться?

1 ответ

Вы могли бы сделать:

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= чтобы получить ту часть линии, которая вам нужна напрямую).

Другие вопросы по тегам