Condicionais em scripts cmd

1

Estou fazendo scripts usando appcmd . O que eu gostaria de fazer é verificar se um determinado site existe e se executa uma ação. Nesse caso, exclua-o.

appcmd list app | find "mySite"

Então, se o find "mySite" retornar qualquer texto, eu gostaria de executar uma instrução delete. Agora, eu entendo que eu poderia tentar excluir o site e ignorar o erro, mas isso dá uma saída (potencialmente) confusa.

Eu tentei algo como o seguinte, onde eu suponho que eu usaria a variável appExists em uma instrução if, mas ela acaba em branco. Alayways.

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

Como posso conseguir isso?

    
por Frank V 21.09.2015 / 22:26

1 resposta

0

Você poderia fazer:

for /f "delims=" %%f in ('appcmd list app ^| find "mySite"') do (
    set appExists=%%f
)
echo %~n0: %appExists%

Mas você pode pular a configuração de uma variável de ambiente e adicionar um teste if e criar a remoção no loop for:

for /f "delims=" %%f in ('appcmd list app ^| find "mySite"') do (
    rem appcmd whatever whatever remove %%f here
)

(e marque as opções for ( for /? ) para usar o delims= e o tokens= para obter a parte da linha que você precisa diretamente).

    
por 22.09.2015 / 03:05