Подтвердить что ты не робот

Может ли командный файл записывать коды выхода из команд, которые он вызывает?

В принципе, скажем, что у меня есть пакетный файл, который вызывает myapp1.exe, а myapp1.exe завершает работу с кодом выхода 1. Может ли пакетный файл фиксировать эту информацию и заставить командный файл выйти с тем же кодом выхода или выполнить какая-то другая логика?

4b9b3361

Ответ 1

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

будет явным вариантом.

Ответ 2

Вы можете попробовать использовать errorlevel s. Дополнительная информация здесь.

Ответ 3

Принятый ответ верен, но если вы используете call для вызова другой партии script, и эта вторая партия script использует SetLocal, для этого вам может понадобиться синтаксический анализ. Если вы используете это, добавьте следующий код перед exit b:

ENDLOCAL&set myvariable=%myvariable%

Теперь значение myvariable становится доступным для вызывающего контекста, и вы можете увидеть его значение в другом script.

Литература:
fooobar.com/questions/255473/...
http://www.borngeek.com/2008/05/22/exiting-batch-file-contexts/

Ответ 4

% ERRORLEVEL% сохраняет возвращаемое значение последней выполненной команды

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