Hay situaciones en las cuales mientras se esta trabajando se necesita repetir una misma operacion varias veces, esto resulto en algunos casos un proceso tedioso ademas de que deja un script final mas pesado de lo que podria ser. Para la optimizacion de codigos con operaciones repetitivas existen tecnias y comandos especiales que nos permiten añadirle a nuestro script un algo nivel de ligereza, aqui tratare de explicar como podemos optimizar un code que contenga operaciones repetitivas mediante el uso del comando “for”.
Sintaxis del comando for con el parametro “/L” (dentro de un .bat):
FOR /L %%variable IN (inicio, paso, fin) comando DO
[parámetros]
“El conjunto es una sucesión de números que va desde inicio hasta fin y que aumenta (o disminuye) en función de lo especificado en paso. Así (1, 1, 5) generará la sucesión 1 12 3 4 5 y (5, -1, 1) generará la sucesión 5 4 3 2 1” à segun la cmd
Ej1.:
C:\>for /l %v in (1, 1, 5) do @echo %v
1
2
3
4
5
C:\>
Exp.: el comando imprime en pantalla los numeros del 1 al 5, de uno en uno (esto es definido por el conjunto “(1, 1, 5)” en donde el 1er # (1) se refiere al numero con que inicia la serie, el 2do # (1) se refiere al numero de paso (asi, si el # ubiera sido “2”, el programa imprime del 1-5 de 2 en 2) y el 3er # (5) se refiere al ultimo numero de la serie (al # con que termina)).
CE1: queremos crear un archivo q dentro contenga los numeros pares del 0 al 200.
Tenemos el code sin optimizar:
-----------------nump.bat---
@echo off
Echo 0 > nump.txt
Echo 2 >> nump.txt
Echo 4 >> nump.txt
Echo 6 >> nump.txt
... ---------------------------------------------------------------… ¬¬
-------------------fin----
Code optimizado: ... à xD
-----------------nump.bat---
@echo 0 > nump.txt
@for /l %%v in (2, 2, 200) do @echo %%v >> nump.txt
-------------------fin----
201 lineas contra 2 lineas … xD
aunque bn podrian aver sido .. 1 linea:
-----------------nump.bat---
@for /l %%v in (0, 2, 200) do @echo %%v >> nump.txt
-------------------fin----
Aora una forma de sacrificar livianidad por utilidad:
-----------------nump.bat---
@echo off
for /l %%v in (0, 2, 200) do call :ech %%v
exit
:ech
echo %1 >> nump.txt
goto :EOF
-------------------fin----
saludos!