Archivo por lotes: Use Loop para en la línea de comando
Frecuentes
Visto 87 equipos
0
Tengo el programa (formulario exe) que puede leer muchos parámetros y puedo ejecutarlo como el siguiente comando:
myprogram param1 param2 param3 etc
Ahora, quiero escribir un comando de archivo por lotes para llamar al comando anterior:
myprogram %1 %2 %3 %4
Pero ya sabes, el número de parámetros es ilimitado. Entonces quiero usar for loop en esta situación. Lo intenté
myprogram for %%x in (%*) echo %%x
Pero no me ayudó.
2 Respuestas
0
myprogramWrapper.cmd
@echo off
myprogram.exe a b c %*
Dónde
myprogram.exe a b c %*
^.^.^......... aditional parameters if needed
^^...... all the parameters passed to batch file
Respondido el 12 de junio de 14 a las 12:06
¡Gracias! Te amo mucho, chico ^_^ - Freelancer
Si quiero tomar parámetros de x a y, ¿cómo puedo hacerlo (solo por índice, ejemplo de 3 a 5)? - Freelancer
@ user3733276 tienes lo obvio myprogram.exe %3 %4 %5
, o puedes usar for /f "tokens=3-5" %%a in ("%*") do myprogram.exe %%a %%b %%c
, o puede codificar un bucle para concatenar los argumentos, o ... depende del problema, el tipo de argumentos, el número de argumentos, .... - MC ND
Es tan complejo :( Solo quiero tomar un ejemplo desde c hasta los últimos parámetros. Por supuesto, ¡la cantidad de parámetros es ilimitada! - Freelancer
0
suma.bat :
@echo off
set $total=0
for %%x in (%*) do set /a $total+=%%x
echo %$total%
llama entonces:
sum.bat 3 4 5 6
Respondido el 12 de junio de 14 a las 11:06
No, no quiero calcular la suma para esta situación. Solo un ejemplo para usar mi programa (sum.exe) y puedo incluir todos los parámetros en mi comando (sum %1 %2 %3 %4...). Pero es muy malo porque tengo que escribir muchas veces. Solo quiero usar for loop. - Freelancer
@ user3733276: su pregunta y su comentario no están claros. Por favor edite su pregunta - dbenham
@user3733276 Uso: sum %*
- Aacini
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas batch-file command-line or haz tu propia pregunta.
no estoy seguro de entenderlo,
%1
tiene sentido dentro de un archivo por lotes, no en la línea de comando, pero, si este es el caso (archivo por lotes), ¿ha intentado?sum %*
? - MC NDNo está claro lo que está intentando hacer, ni está claro lo que está fallando. Edite su pregunta para explicar mejor lo que quiere, y también muestre más código y describa cómo está fallando. - dbenham