Получить код ошибки из пакетного файла

У меня есть пакетный файл, который запускает несколько исполняемых файлов, и я хочу, чтобы он завершился успешно, но остановился, если код выхода <> 0. Как мне это сделать?

37
задан Dlongnecker 10 August 2010 в 18:12
поделиться

2 ответа

Похоже, вам понадобится команда «Если уровень ошибки». Предполагая, что ваш исполняемый файл возвращает код выхода не равный 0 при ошибке, вы делаете что-то вроде:

myProgram.exe
if errorlevel 1 goto somethingbad
echo Success!
exit
:somethingbad
echo Something Bad Happened.

Проверка уровня ошибок выполняется как проверка на большее или равное значение, поэтому любое значение выхода, отличное от 0, вызовет переход. Следовательно, если вам нужно проверить более одного конкретного значения выхода, вам следует сначала проверить самое высокое из них.

44
ответ дан 27 November 2019 в 04:35
поделиться

Вы также можете использовать символы условной обработки , чтобы добиться простого успеха / проверка отказа. Например:

myProgram.exe && echo Done!

напечатает Готово! , только если myProgram.exe вернул с уровнем ошибки 0.

myProgram.exe || PAUSE

приведет к приостановке выполнения пакетного файла, если myProgram.exe вернет ненулевой уровень ошибки.

28
ответ дан 27 November 2019 в 04:35
поделиться