Моя команда выполняется долго, но я ожидаю, что она может завершиться с ошибкой, и в этом случае я хочу быстро завершить работу в цикле пакетной обработки. Как вывести уровень ошибки?
Я пробовал командный файл с 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
или любому большему числу. Как это возможно? Я имею в виду, как я могу иметь два уровня ошибок одновременно? Разве значения одной переменной не являются взаимоисключающими?
Как ввести код завершения ошибки?