Necesito ejecutar un comando de Windows n veces dentro de un archivo de script bat. Sé cómo hacer esto en varios lenguajes de programación, pero no puedo hacerlo bien en la línea de comandos de Windows :-(
Esperaría algo como
for(int i = 0; i < 100; i++) {
// do something
}
o incluso esto (aunque no del todo en serio)
1.upto(100, {
// do something
})
¡Gracias!
EDITAR
Puedo escribir un programa en java, perl, c o lo que sea que genere un script bat que se vea así
for %%N in (1 2 3 4 5 6 7 8 9 10 11 12) do echo %%N
y así. O mejor":
echo 1
echo 2
echo 3
echo 4
echo 5
echo 6
echo 7
echo 8
echo 9
echo 10
echo 11
echo 12
y luego ejecutarlo ... Pero la cosa es que necesito una forma concisa de especificar un rango de números para iterar dentro del script.
¡Gracias!
Respuestas:
Puedes hacerlo de la misma manera:
El 1,1,5 se decodifica como:
También tenga en cuenta que si está incrustando esto en un archivo por lotes, deberá usar el signo de porcentaje doble (%%) para prefijar sus variables; de lo contrario, el intérprete de comandos intentará evaluar la variable% i antes de ejecutar el ciclo.
fuente
@
signo suprimirá la impresión de los comandos a medida que se ejecutan desde la línea de comandos. "... DO @ (..."%%i
en su texto y agregar un comentario que sea%i
para ejecución directa en la línea de comando. La mayoría de los usuarios lo probarán en un archivo BAT e intentarán encontrar la razón por la que obtienen un error (como yo).La sintaxis es
Buen artículo aquí y especificaciones de XP aquí
fuente
Directamente desde la línea de comando:
Usando un archivo por lotes:
Muestra:
fuente