2012-02-06 22 views
10

Estoy intentando ejecutar algunos archivos .exe de la aplicación de consola desde un archivo por lotes en Windows.Iniciar varias aplicaciones de consola desde un archivo por lotes

Sin embargo, cuando corro el siguiente código que sólo se inicia la primera de las aplicaciones:

"C:\Development\App\bin\Debug1\Application.exe" 
timeout 5 
"C:\Development\App\bin\Debug2\Application.exe" 
timeout 5 
"C:\Development\App\bin\Debug3\Application.exe" 
timeout 5 
"C:\Development\App\bin\Debug4\Application.exe" 
timeout 5 
"C:\Development\App\bin\Debug5\Application.exe" 
timeout 5 

(que he incluido el tiempo de espera para extender la intial de procesamiento de un bit)

¿Hay una forma de obtener el archivo de script para iniciar la primera aplicación, luego continuar y comenzar los otros?

Idealmente, me gustaría que el archivo de script inicie todas las aplicaciones en un subdirectorio, de modo que si tuviera Debug\Applications\*.exe o similar, iniciaría todas las aplicaciones de tipo .exe (y posiblemente esperar 5 segundos entre cada una). es posible?

Respuesta

22

Puede iniciar las aplicaciones en segundo plano mediante el uso de start:

start "C:\Development\App\bin\Debug1\Application.exe" 

Uso start /? desde una ventana de comandos para obtener más detalles.

Por ejemplo,

start dir 

se abrirá una nueva ventana de comandos y le mostrará un listado de directorio, dejando abierta cuando finsished.

El:

comando
start cmd /c "ping 127.0.0.1 && exit" 

se abrirá una nueva ventana, ejecutar un ping de cuatro tiempos en localhost luego salir.

En ambos casos, la ventana actual esperará el siguiente comando inmediatamente.

+0

Gracias, acaba de encontrar esta mencionado en http://stackoverflow.com/questions/324539/how-can-i-run-a-program-from-a-batch-file-without-having-the -consola-abierta-después también. ¿Alguna idea sobre la carga dinámica en un archivo por lotes? – finoutlook

+0

El comando START interpreta el primer argumento como título de la ventana si está entre comillas, por lo que debe especificar un título como 'start '' '' C: \ Desarrollo \ Aplicación \ bin \ Debug1 \ Application.exe '' – dbenham

5
@echo off 
for %%F in ("Debug\Applications\*.exe") do (
    start "" "%%F" 
    timeout 5 
) 
+0

Gracias ayudó mucho. He dado la respuesta aceptada al otro usuario, ya que respondió la primera pregunta que tuve, así que lo mejor que puedo hacer es un voto alternativo. – finoutlook

Cuestiones relacionadas