Script de lote - instrução If / else
A próxima declaração de tomada de decisão é a declaração If / else. A seguir está a forma geral desta declaração.
If (condition) (do_something) ELSE (do_something_else)
O funcionamento geral desta instrução é que primeiro uma condição é avaliada na instrução 'if'. Se a condição for verdadeira, ele executa as instruções depois disso e para antes da condição else e sai do loop. Se a condição for falsa, ele executa as instruções no bloco de instruções else e sai do loop. O diagrama a seguir mostra o fluxo da instrução 'if'.
Verificando Variáveis
Assim como a instrução 'if' no Batch Script, o if-else também pode ser usado para verificar as variáveis definidas no próprio Batch Script. A avaliação da instrução 'if' pode ser feita para strings e números.
Verificando Variáveis Inteiras
O exemplo a seguir mostra como a instrução 'if' pode ser usada para números.
Example
@echo off
SET /A a = 5
SET /A b = 10
SET /A c = %a% + %b%
if %c%==15 (echo "The value of variable c is 15") else (echo "Unknown value")
if %c%==10 (echo "The value of variable c is 10") else (echo "Unknown value")
O principal ponto a ser observado sobre o programa acima é -
Cada código 'if else' é colocado entre colchetes (). Se os colchetes não forem colocados para separar o código do código 'if e else', então as instruções não seriam válidas apropriadamente.
Na primeira instrução 'if else', a condição if seria avaliada como verdadeira.
Na segunda instrução 'if else', a condição else será executada, pois os critérios serão avaliados como falsos.
Output
O comando acima produz a seguinte saída.
"The value of variable c is 15"
"Unknown value"
Verificando Variáveis de String
O mesmo exemplo pode ser repetido para strings. O exemplo a seguir mostra como a instrução 'if else' pode ser usada para strings.
Example
@echo off
SET str1 = String1
SET str2 = String2
if %str1%==String1 (echo "The value of variable String1") else (echo "Unknown value")
if %str2%==String3 (echo "The value of variable c is String3") else (echo "Unknown value")
O principal ponto a ser observado sobre o programa acima é -
A primeira instrução 'if' verifica se o valor da variável str1 contém a string “String1”. Nesse caso, ele ecoa uma string no prompt de comando.
Visto que a condição da segunda instrução 'if' é avaliada como falsa, a parte do eco da instrução não será executada.
Output
O comando acima produz a seguinte saída.
"The value of variable String1"
"Unknown value"
Verificando os argumentos da linha de comando
A instrução 'if else' também pode ser usada para verificar os argumentos da linha de comando. O exemplo a seguir mostra como a instrução 'if' pode ser usada para verificar os valores dos argumentos da linha de comando.
Example
@echo off
echo %1
echo %2
echo %3
if %1%==1 (echo "The value is 1") else (echo "Unknown value")
if %2%==2 (echo "The value is 2") else (echo "Unknown value")
if %3%==3 (echo "The value is 3") else (echo "Unknown value")
Output
Se o código acima for salvo em um arquivo chamado test.bat e o programa for executado como
test.bat 1 2 4
A seguir será o resultado do programa acima.
1
2
4
"The value is 1"
"The value is 2"
"Unknown value"
se definido
Um caso especial para a instrução 'if' é "se definido", que é usado para testar a existência de uma variável. A seguir está a sintaxe geral da instrução.
if defined somevariable somecommand
A seguir está um exemplo de como a instrução 'se definido' pode ser usada.
Example
@echo off
SET str1 = String1
SET str2 = String2
if defined str1 echo "Variable str1 is defined"
if defined str3 (echo "Variable str3 is defined") else (echo "Variable str3 is not defined")
Output
O comando acima produz a seguinte saída.
"Variable str1 is defined"
"Variable str3 is not defined"
se existe
Outro caso especial para a instrução 'if' é "se existe", que é usado para testar a existência de um arquivo. A seguir está a sintaxe geral da instrução.
If exist somefile.ext do_something
A seguir está um exemplo de como a instrução 'se existe' pode ser usada.
Example
@echo off
if exist C:\set2.txt echo "File exists"
if exist C:\set3.txt (echo "File exists") else (echo "File does not exist")
Output
Vamos supor que haja um arquivo denominado set2.txt na unidade C e que nenhum arquivo denominado set3.txt. Então, a seguir será a saída do código acima.
"File exists"
"File does not exist"