2010-09-09 20 views

risposta

27
@echo off 
rem ... 
set errorlevel= 
MyApp1.exe 
exit /b %errorlevel% 

sarebbe la variante esplicita.

+0

thnx, fino a quando powershell può restituire i codici di uscita negativi Sono costretto a continuare a completare i miei script PowerShell con script batch ~ – MDMoore313

+1

Sembra che almeno PowerShell v3 può restituire i codici di uscita negativi: 'powershell 'exit -5'; $ LASTEXITCODE' restituisce '-5' per me. – Joey

4

Si potrebbe provare a utilizzare errorlevel s. Altre informazioni here.

+9

Do, o non. Non c'è una prova". (E in questo caso, se si utilizza il errorlevel, funzionerà;) – ewall

3

La risposta accettata è corretta, ma se si utilizza call per chiamare un altro script batch e tale secondo script batch utilizza SetLocal, potrebbe essere necessario utilizzare un trucco di analisi per ottenere ciò. 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/

-1

% errorlevel% memorizza il valore di ritorno dell'ultimo comando eseguito

call program.exe 
echo program.exe returns "%ERRORLEVEL%" 
IF %ERRORLEVEL% NEQ 0 (
    echo FAILED 
) 
+2

Questo è già affermato dalla risposta accettata di anni fa, mi sembra. –

Problemi correlati