
Моя команда выполняется долго, но я ожидаю, что она может завершиться с ошибкой, и я хочу, чтобы в этом случае в пакетном цикле произошел быстрый сбой. Как мне получить уровень ошибки?
Я попробовал пакетный файл с exit 1
. Но он закрывает родительский скрипт независимо от того, вызван ли он с помощью call raise_error.bat
или просто raise_error
.
Я также пробовал cmd /c exit 1
. Это не закрывает родительский скрипт, а следует за ним if errorlevel 0 goto exit
и if errorlevel 1 goto exit
оба ветвятся для выхода. Ранний выход не выполняется в случае if errorlevel 2 goto exit
или любого большего числа. Как это вообще возможно? Я имею в виду, как у меня могут быть два уровня ошибок одновременно? Разве значения одной переменной не являются взаимоисключающими?
Как мне ввести код выхода ошибки?