Cómo hacer un bucle en el intérprete de Windows, y qué cosas se pueden aprovechar

29 de marzo de 2021

 


Hace un tiempo he experimentado con varios códigos realizados en Batch, que para los que no saben, es el lenguaje que utiliza la consola de comandos de Windows y que prácticamente deriva de MS-DOS y sus antecesores. Entre esos experimentos, estuve haciendo varias cosas con loops (ese método que te permite repetir órdenes tanto indefinida como definidamente), y me gustaría compartir su procedimiento. Aprovechando la ocasión mostraré también algunas cosas interesantes que se pueden realizar.

Cómo hacerlos

Hay varias formas de crear un bucle en un archivo batch. La que yo usé en mi video, por ejemplo, es la siguiente:
 
set /a i = 1
:
fragm  
if %i
% leq 50 (
    :: El contenido a repetir dentro del loop
    set /a i = %i% + 1
    goto
fragm
)
 
Lo primero que hace este código es establecer una variable numérica (i), la cual contará las veces que se ha repetido el bucle. Después defino un fragmento, llamado fragm, que será el contenido al que se la hará un loop. Luego creo un condicional en donde si la variable i es un número menor o igual a 50, sigue adelante.
Dentro de la condición se le suma a esta el valor 1, para que cuente ese pase por el código.
Finalmente, la función goto hace que el programa vuelva al fragmento ya definido, lo que provoca que este se vuelva a repetir, en este caso, un total de 50 veces.
 
Ahora bien, si queremos hacer que la repetición sea permanente, simplemente le sacamos el condicional y la variable de contador. Nos quedaría algo así:

:fragm
    :: El contenido a repetir dentro del loop
    goto fragm
 

Claramente hacer esto a largo plazo puede causarle problemas de rendimiento a nuestra computadora; siempre hay que usarlo con precaución.

Otra manera de hacer una repetición es mediante la instrucción FOR.

for /l %x in (1, 1, 15)  do (

    :: Contenido a repetir dentro del loop

)

Aquí se define que para la variable x, se contará del 1 al 15 en aumento y en cada conteo se ejecutará el contenido. Los valores de la cuenta se van sumando a x. En palabras sencillas, lo que esté adentro se repetirá un total de 15 veces, según lo establecido.

Qué se puede hacer

Si con el intérprete de comandos de Windows es posible hacer hacer miles de cosas, pues de más estar decir que con un loop también contamos con un abanico de posibilidades. A continuación les voy a compartir dos programitas de ejemplo (iba a poner más, pero no tenía muchas ideas).

Matrix

Si en algún momento quisiste hacer algo lo más parecido a la Matrix, este código es el más indicado para tí. Establece el color correspondiente e imprime números aleatorios.
 
@echo off
title Matrix
color 0a
:loop
    echo %random%%random%%random%%random%%random%%random%%random%
    goto loop

Tabla numérica

Más de una vez la has tenido que usar para alguna tarea. Te pregunta el número de tabla y la cantidad de veces que lo quieras multiplicar.

@echo off
title Tabla numérica
echo Escribe un número para a multiplicar
set /p n=""
echo Escribe la cantidad de veces a multiplicar
set /p i=""
set /a v=0
set /a b=0
echo Resultado:
:fragm  
if %v% leq %i% (
    set /a b = %n% * %v%
    echo %b%
    set /a v = %v% + 1
    goto fragm
)
pause

No hay comentarios: