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