Implementação de declaração While
Não há instrução while direta disponível no Batch Script, mas podemos fazer uma implementação desse loop muito facilmente usando a instrução if e rótulos.
O diagrama a seguir mostra a explicação diagramática deste loop.
A primeira parte da implementação do while é definir os contadores que serão usados para controlar a avaliação da condição 'se'. Em seguida, definimos nosso rótulo que será usado para incorporar o código inteiro para a implementação do loop while. A condição 'if' avalia uma expressão. Se a expressão for avaliada como verdadeira, o bloco de código será executado. Se a condição for avaliada como falsa, o loop será encerrado. Quando o bloco de código for executado, ele retornará à instrução de rótulo para execução novamente.
A seguir está a sintaxe da implementação geral da instrução while.
Sintaxe
Set counters
:label
If (expression) (
Do_something
Increment counter
Go back to :label
)
Todo o código da implementação while é colocado dentro de um rótulo.
As variáveis do contador devem ser definidas ou inicializadas antes do início da implementação do loop while.
A expressão para a condição while é feita usando a instrução 'if'. Se a expressão for avaliada como verdadeira, o código relevante dentro do loop 'if' será executado.
Um contador precisa ser incrementado corretamente dentro da instrução 'if' para que a implementação do while possa terminar em algum momento.
Finalmente, vamos voltar ao nosso rótulo para que possamos avaliar nossa instrução 'if' novamente.
A seguir está um exemplo de uma instrução de loop while.
Exemplo
@echo off
SET /A "index = 1"
SET /A "count = 5"
:while
if %index% leq %count% (
echo The value of index is %index%
SET /A "index = index + 1"
goto :while
)
No exemplo acima, estamos inicializando primeiro o valor de uma variável de índice inteiro para 1. Então nossa condição no loop 'if' é que estamos avaliando a condição da expressão para que o índice seja menor que o valor de a variável de contagem. Até que o valor do índice seja menor que 5, imprimiremos o valor do índice e então incrementaremos o valor do índice.
Resultado
O comando acima produz a seguinte saída.
The value of index is 1
The value of index is 2
The value of index is 3
The value of index is 4
The value of index is 5