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"