Script de lote - instruções aninhadas se
Às vezes, é necessário ter várias instruções 'if' incorporadas umas às outras. A seguir está a forma geral desta declaração.
if(condition1) if (condition2) do_something
Portanto, apenas se a condição1 e a condição2 forem atendidas, o código no bloco do_something será executado.
A seguir está um exemplo de como as instruções if aninhadas podem ser usadas.
Exemplo
@echo off
SET /A a = 5
SET /A b = 10
if %a%==5 if %b%==10 echo "The value of the variables are correct"
Resultado
O comando acima produz a seguinte saída.
"The value of the variables are correct"
Se nível de erro
Ainda outro caso especial é "if errorlevel", que é usado para testar os códigos de saída do último comando executado. Vários comandos emitem códigos de saída inteiros para denotar o status do comando. Geralmente, os comandos passam 0 se o comando foi concluído com sucesso e 1 se o comando falhou.
A seguir está a sintaxe geral desta instrução.
if errorlevel n somecommand
onde "n" é um dos códigos de saída inteiros.
Declaração Goto
Geralmente, a execução de um arquivo em lote prossegue linha por linha com o (s) comando (s) em cada linha sendo executado por vez. No entanto, geralmente é desejável executar uma seção específica de um arquivo em lote enquanto pula outras partes. A capacidade de pular para uma seção específica é fornecida pelo comando "goto" apropriadamente denominado (escrito como uma palavra). A seção de destino é identificada com uma linha no início que possui um nome com dois pontos à esquerda. Assim, o script se parece com -
...
goto :label
...some commands
:label
...some other commands
A execução pulará "alguns comandos" e começará com "alguns outros comandos". O rótulo pode ser uma linha em qualquer lugar do script, inclusive antes do comando "goto". Os comandos "Goto" geralmente ocorrem em instruções "if". Por exemplo, você pode ter um comando do tipo -
if (condition) goto :label
A seguir está um exemplo de como a instrução goto pode ser usada.
Exemplo
@echo off
SET /A a = 5
if %a%==5 goto :labela
if %a%==10 goto :labelb
:labela
echo "The value of a is 5"
exit /b 0
:labelb
echo "The value of a is 10"
O principal ponto a ser observado sobre o programa acima é -
As instruções de código para o rótulo devem estar na próxima linha após a declaração do rótulo.
Você pode definir várias instruções goto e seus rótulos correspondentes em um arquivo em lote.
As declarações de rótulo podem estar em qualquer lugar no arquivo.
Resultado
O comando acima produz a seguinte saída.
"The value of a is 5"