2012-02-06 1 views
10

Sto provando a eseguire alcuni file .exe di applicazioni console da un file batch in Windows.Avviare più app console da un file batch

Tuttavia, quando si esegue il seguente codice si avvia solo la prima delle applicazioni:

"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 

(Ho incluso il timeout di diffondere la intial elaborazione di un bit)

C'è un modo per ottenere il file di script per avviare la prima applicazione, quindi andare avanti e avviare gli altri?

Idealmente mi piacerebbe che il file di script avvii tutte le applicazioni in una sottodirectory, in modo che se avessi Debug\Applications\*.exe o simile avvierebbe tutte le applicazioni di tipo .exe (e possibilmente aspettando 5 secondi tra ciascuna). È possibile?

risposta

22

È possibile avviare applicazioni in background utilizzando start:

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

Usa start /? da una finestra di comando per ottenere ulteriori dettagli.

Per esempio,

start dir 

si aprirà una nuova finestra di comando e vi mostrerà un elenco di directory, lasciando aperta quando finsished.

L':

start cmd /c "ping 127.0.0.1 && exit" 

comando aprirà una nuova finestra, eseguire un ping quattro tempi su localhost quindi uscire.

In entrambi i casi, la finestra corrente attenderà immediatamente il comando successivo.

+0

Grazie, appena trovato questo di cui http://stackoverflow.com/questions/324539/how-can-i-run-a-program-from-a-batch-file-without-having-the -console-aperto anche dopo. Qualche idea sul caricamento dinamico in un file batch? – finoutlook

+0

Il comando START interpreta il primo argomento come titolo della finestra se è quotato, quindi è necessario specificare un titolo come "inizio" "" C: \ Development \ App \ bin \ Debug1 \ Application.exe "' – dbenham

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

Grazie a questo ha aiutato molto. Ho dato la risposta accettata all'altro utente in quanto ha risposto alla prima domanda che ho avuto, quindi il meglio che posso fare è un upvote. – finoutlook