2010-09-09 7 views

Respuesta

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

sería la variante explícita.

+0

thnx, hasta que powershell pueda devolver códigos de salida negativos Estoy obligado a continuar envolviendo mis scripts de powershell con scripts por lotes ~ – MDMoore313

+1

Parece que al menos PowerShell v3 puede devolver códigos de salida negativos: 'powershell 'exit -5'; $ LASTEXITCODE' produce '-5' para mí. – Joey

4

Puede intentar con errorlevel s. Algunos más información here.

+9

hacer, o no lo hacen. Aquí no hay intentos". (Y en este caso, si usa el nivel de error, funcionará;) – ewall

3

La respuesta aceptada es correcta, pero si usa call para llamar a otra secuencia de comandos por lotes, y la segunda secuencia de comandos por lotes está utilizando SetLocal, puede necesitar usar un truco de análisis para lograr esto. Si está ejecutando en esto, agregue el código siguiente antes de su exit b:

ENDLOCAL&set myvariable=%myvariable% 

Ahora el valor de myvariable se pone a disposición el contexto de llamada y se puede ver el valor en el otro guión.

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

-1

% errorlevel% almacena el valor de retorno del último comando ejecutado

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

Esto ya está establecido por la respuesta aceptada de hace años, me parece. –

Cuestiones relacionadas