2011-12-13 20 views
23

Ho un file finestre batch che è simile a:Come si impedisce a un file di Windows Batch di uscire presto?

C:\DoStuff.cmd 
move output.bak C:\newfolder\output.bak 

Il problema che ho è che DoStuff.cmd esegue un programma Java che esce una volta che completi il ​​batch correre di nuovo al prompt dei comandi. La linea 2 non viene mai colpita.

ho provato quanto segue invece di eseguire il comando in una nuova finestra:

start "My program" /WAIT C:\DoStuff.cmd 
move output.bak C:\newfolder\output.bak 

Quello che succede con quanto sopra è che la nuova finestra di comando genera l'esecuzione del file cmd ed esce di nuovo ad un prompt dei comandi in attesa e la finestra non si chiude mai, lasciando la prima finestra di comando in attesa e la seconda che non fa nulla bloccato dopo aver terminato il primo passaggio.

Come si esegue il primo comando senza che il controllo del batch venga eseguito in qualche modo?

molte grazie in anticipo

risposta

34

È possibile utilizzare DOS call command:

@echo off 
call C:\DoStuff.cmd 
echo Exit Code = %ERRORLEVEL% 

Dopo aver ottenuto il codice di errore si può procedere ad esempio con:

if "%ERRORLEVEL%" == "1" exit /B 1 
Problemi correlati