¿Cuál es la sintaxis de un bucle FOR en un archivo por lotes de Windows?¿Cómo se realiza un bucle en un archivo por lotes de Windows?
Respuesta
FOR %%A IN (list) DO command parameters
lista es una lista de todos los elementos, separados por espacios, ya sea de coma o punto y coma.
comando puede ser cualquier comando, archivo interno o externo por lotes o incluso - en OS/2 y NT - una lista de comandos
parámetros contiene los parámetros de línea de comandos para el mando. En este ejemplo, el comando se ejecutará una vez para cada elemento en la lista, usando parámetros si se especifica.
Un tipo especial de parámetro (o comando) es %% A, que será sustituido por cada elemento de la lista consecutivamente.
De FOR loops
Tipo:
for /?
y obtendrá varias páginas de texto de ayuda.
Prefiero esto sobre la respuesta aceptada porque maneja las diferentes versiones de DOS/Windows. "A favor" se ha mejorado de manera significativa, a lo largo de los años, y la pregunta no dice qué versión (es) está (n) siendo apuntada ni qué escenario se está intentando. –
Si usted quiere hacer algo x veces, usted puede hacer esto:
Ejemplo (x = 200):
FOR /L %%A IN (1,1,200) DO (
ECHO %%A
)
1,1,200
significa:
- Inicio = 1
- I ncrement por paso = 1
- Final = 200
Gracias por agregar. Podría ser más claro si cambia el valor inicial en su ejemplo a algo diferente al incremento. –
El valor final es inclusivo. –
FOR
le dará toda la información que usted necesitará siempre saber sobre los bucles FOR, con ejemplos sobre el uso apropiado.
probar este código:
@echo off
color 02
set num1=0
set num2=1
set terminator=5
:loop
set /a num1= %num1% + %num2%
if %num1%==%terminator% goto close
goto open
:close
echo %num1%
pause
exit
:open
echo %num1%
goto loop
num1
es el número a ser incrementado y num2
es el valor añadido a num1
y el terminador es el valor donde el num1
terminará. Puede indicar un valor diferente para el terminador en esta declaración (if %num1%==%terminator% goto close
). Esta es la expresión booleana goto close es el proceso si boolean es verdadero y goto open es el proceso si boolean es falso.
¿No puedes usar el comando 'FOR'? –
@echo off
echo.
set /p num1=Enter Prelim:
echo.
set /p num2=Enter Midterm:
echo.
set /p num3=Enter Semi:
echo.
set /p num4=Enter Finals:
echo.
set /a ans=%num1%+%num2%+%num3%+%num4%
set /a avg=%ans%/4
ECHO %avg%
if %avg%>=`95` goto true
:true
echo The two numbers you entered were the same.
echo.
pause
exit
Condicionalmente, ejecute un comando varias veces.
sintaxis-PARA-Files
FOR %%parameter IN (set) DO command
sintaxis-PARA-Files arraigada en el Camino
FOR /R [[drive:]path] %%parameter IN (set) DO command
sintaxis-PARA-carpetas
FOR /D %%parameter IN (folder_set) DO command
sintaxis-FOR -Lista de números
FOR /L %%parameter IN (start,step,end) DO command
contenidos sintaxis-PARA-File
FOR /F ["options"] %%parameter IN (filenameset) DO command
o
FOR /F ["options"] %%parameter IN ("Text string to process") DO command
sintaxis-PARA-resultados de los comandos
FOR /F ["options"] %%parameter IN ('command to process') DO command
Se
- Tomar un conjunto de datos
- Hacer una para el parámetro
%%G
igual a una parte de los datos que - ejecutar un comando (eventualmente mediante el parámetro como parte del comando).
- -> Repetir para cada elemento de los datos
Si está utilizando el comando FOR en la línea de comandos en lugar de en un programa por lotes, utilice sólo un signo de porcentaje: %G
en lugar de %%G
.
para los parámetros
El primer parámetro es a determinar el uso de un solo carácter, por ejemplo la letra G.
FOR %%G IN
...En cada iteración de un PARA bucle, la cláusula
IN (....)
se evalúa y%%G
establece en un valor diferenteSi esta cláusula da como resultado un único valor, entonces %% G se establece igual a ese valor y se ejecuta el comando.
Si la cláusula da como resultado valores múltiples, los parámetros extra se definen implícitamente para contener cada uno. Estos se asignan automáticamente en orden alfabético
%%H %%I %%J
... (definición de parámetro implícito)Si el parámetro hace referencia a un archivo, la referencia de variable mejorada se puede utilizar para extraer el nombre de archivo/ruta/fecha/tamaño.
Puede, por supuesto, elegir cualquier letra del alfabeto que no sea
%%G
.pero es una buena opción porque no entra en conflicto con ninguna de las letras de formato de nombre de ruta (a, d, f, n, p, s, t, x) y proporciona la ejecución más larga de letras no conflictivas para usar como parámetros implícitos .
De FOR /?
ayuda doc:
para la variable% IN (conjunto) DO comando [parámetros de comando]
% variable especifica un parámetro reemplazable sola letra.
(conjunto) Especifica un conjunto de uno o más archivos. Se pueden usar comodines. comando Especifica el comando para llevar a cabo para cada archivo.
command-parameters
Especifica los parámetros o interruptores para el comando especificado.
Para usar el comando FOR en un programa por lotes, especifique la variable %% en su lugar
de la variable%. Los nombres de las variables distinguen entre mayúsculas y minúsculas, por lo que% i es diferente
de% I.
Si las extensiones de comando están habilitadas, los siguientes
formas adicionales del comando FOR son compatibles:
para la variable%/D IN (conjunto) DO comando [parámetros-comando]
If set contains wildcards, then specifies to match against directory
names instead of file names.
A/R [[unidad:] ruta] variable% IN (conjunto) DO comando [parámetros de comando]
Walks the directory tree rooted at [drive:]path, executing the FOR
statement in each directory of the tree. If no directory
specification is specified after /R then the current directory is
assumed. If set is just a single period (.) character then it
will just enumerate the directory tree.
PARA/L Variable% IN (inicio , Paso, final) DO comando [parámetros de comando]
The set is a sequence of numbers from start to end, by step amount.
So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would
generate the sequence (5 4 3 2 1)
- 1. Incluir un archivo por lotes en un archivo por lotes
- 2. variables de archivo por lotes inicializados en un bucle for
- 3. Cómo crear un bucle infinito en el archivo por lotes de Windows?
- 4. ¿Cómo concatenar cadenas en un archivo por lotes de Windows?
- 5. aritmética dentro de un archivo por lotes de bucle
- 6. Control de psftp en un archivo por lotes de Windows
- 7. ¿Cómo recupero la versión de un archivo de un archivo por lotes en Windows Vista?
- 8. ¿Cómo puedo comprobar el tamaño de un archivo en un archivo por lotes de Windows?
- 9. Bucle script por lotes
- 10. Ejecute el archivo por lotes como un servicio de Windows
- 11. Detectando cómo se ejecutó un archivo por lotes
- 12. ¿Cómo se representa una llamada que se realiza en un bucle en un diagrama de secuencia?
- 13. archivo por lotes de Windows operador &&
- 14. Archivo por lotes para reiniciar un servicio. Windows
- 15. Redirigir argumentos pasados a un archivo por lotes de Windows
- 16. ¿Cómo establecer el directorio de trabajo de un comando en un archivo por lotes de Windows?
- 17. ¿Cómo puedo hacer un aviso "¿estás seguro?" En un archivo por lotes de Windows?
- 18. ¿Cómo esperar en un script por lotes?
- 19. Ejecutando un script por lotes en el cierre de Windows
- 20. ¿Cómo enviar un correo electrónico simple desde un archivo por lotes de Windows?
- 21. Tiempo de impresión en un archivo por lotes (milisegundos)
- 22. ¿Cómo puedo detectar (y eliminar) un archivo si está vacío usando un archivo por lotes de Windows?
- 23. ¿Cómo puedo hacer que un archivo por lotes de windows se pause mientras se ejecuta un ejecutable?
- 24. ¿Cómo se lee el contenido del archivo en una variable en un archivo por lotes?
- 25. Recibe el nombre de archivo por lotes para el bucle
- 26. de archivos por lotes para un bucle sobre una lista de extensiones de archivo con exclusiones
- 27. ¿Cómo comprobar si existe un archivo ejecutable en% PATH% desde un archivo de proceso por lotes de Windows?
- 28. ¿Cuánto demora ejecutar un archivo por lotes?
- 29. Archivo por lotes de Windows: ¿cómo recorrer los archivos en un directorio?
- 30. Cómo sustituir contenidos de variables en un archivo por lotes de Windows
Este es el primer resultado de "bucle de archivo por lotes" en Google. ¿Lo convierte en un bucle infinito? una búsqueda recursiva? ¡Estoy confundido! – Ben