Archivo por lotes: Use Loop para en la línea de comando

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

preguntado el 12 de junio de 14 a las 11:06

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 %*? -

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

2 Respuestas

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

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 or haz tu propia pregunta.