Mientras que la implementación de la declaración

No hay una instrucción while directa disponible en Batch Script pero podemos hacer una implementación de este bucle muy fácilmente usando la instrucción if y las etiquetas.

El siguiente diagrama muestra la explicación esquemática de este bucle.

La primera parte de la implementación while es establecer los contadores que se usarán para controlar la evaluación de la condición 'if'. Luego definimos nuestra etiqueta que se utilizará para incorporar el código completo para la implementación del ciclo while. La condición 'si' evalúa una expresión. Si la expresión se evalúa como verdadera, se ejecuta el bloque de código. Si la condición se evalúa como falsa, se sale del ciclo. Cuando se ejecuta el bloque de código, volverá a la declaración de la etiqueta para su ejecución nuevamente.

A continuación se muestra la sintaxis de la implementación general de la instrucción while.

Sintaxis

Set counters
:label
If (expression) (
   Do_something
   Increment counter
   Go back to :label
)
  • El código completo para la implementación while se coloca dentro de una etiqueta.

  • Las variables de contador deben establecerse o inicializarse antes de que comience la implementación del ciclo while.

  • La expresión para la condición while se realiza mediante la instrucción 'if'. Si la expresión se evalúa como verdadera, entonces se ejecuta el código relevante dentro del ciclo 'if'.

  • Un contador debe incrementarse correctamente dentro de la declaración 'if' para que la implementación while pueda terminar en algún momento.

  • Finalmente, regresaremos a nuestra etiqueta para que podamos evaluar nuestra declaración 'if' nuevamente.

A continuación se muestra un ejemplo de una declaración de bucle while.

Ejemplo

@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
)

En el ejemplo anterior, primero estamos inicializando el valor de una variable entera de índice en 1. Luego, nuestra condición en el ciclo 'if' es que estamos evaluando la condición de la expresión para que sea ese índice si es menor que el valor de la variable de recuento. Hasta que el valor del índice sea menor que 5, imprimiremos el valor del índice y luego incrementaremos el valor del índice.

Salida

El comando anterior produce la siguiente salida.

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