2009-08-31 9 views

Respuesta

71
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

+1

¿Puedo dar el rango (1 A 100) en la lista? – Pradeep

+18

'FOR/L% x IN (1,1,100) DO ...' – Joey

+0

ponga parens alrededor de '[parameters]' si desea incluir varias líneas en su bucle 'for' –

39

Tipo:

for /? 

y obtendrá varias páginas de texto de ayuda.

+4

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. –

141

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
+14

Gracias por agregar. Podría ser más claro si cambia el valor inicial en su ejemplo a algo diferente al incremento. –

+4

El valor final es inclusivo. –

11

FOR le dará toda la información que usted necesitará siempre saber sobre los bucles FOR, con ejemplos sobre el uso apropiado.

9

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.

+0

¿No puedes usar el comando 'FOR'? –

3
@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 
15

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 diferente

    Si 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 .

1

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)          
Cuestiones relacionadas