2013-01-11 6 views

risposta

8

sufficiente sostituire CMD /C per call.

task.bat:

@echo off 
set errorlevel=15 

runtask.bat

call task.bat 
set taskexitcode=%errorlevel% 
echo %taskexitcode% 

uscita

15 
+0

Ha lavorato come un fascino, grazie. Permette anche di impostare le variabili in 'task.bat' e leggere in' runtask.bat'. Grazie mille! – James

+0

Grande, nessun problema. In realtà non conoscevo le variabili, bello :) –

+0

Il comando di uscita ha un interruttore '/ B' per impostare il codice di uscita per uno script batch. –

0

La risposta accettata è corretta, ma se si utilizza call per chiamare un altro script batch, e che lo script secondo lotto è utilizzato SetLocal, potrebbe essere necessario utilizzare un trucco di analisi per ottenere questo risultato. Se si esegue in questo, aggiungere il seguente codice prima del vostro exit b:

ENDLOCAL&set myvariable=%myvariable% 

Ora il valore di myvariable è reso disponibile per il contesto di chiamata e si può vedere il valore in un altro script.

Riferimenti:
https://stackoverflow.com/a/16167938/89590
http://www.borngeek.com/2008/05/22/exiting-batch-file-contexts/

Problemi correlati