如何退出父批处理上下文

时间:2016-04-26 05:58:29

标签: batch-file

我正在尝试创建一个批处理文件,如下所示。

@ECHO OFF
:Main
CALL :STEP_1
CALL :STEP_2

GOTO :EXIT

:STEP_1
REM some other logic here
IF %ERRORLEVEL% NEQ 0 (
  GOTO :ERROR
)
GOTO  :EOF

:STEP_2
REM step 2 logic
GOTO  :EOF

:ERROR
EXIT /b 1

:EXIT
EXIT /b 0

我期待的是:STEP_1中的错误处理将从整个批处理文件中退出。但是,正在发生的事情是它只退出我们使用CALL时创建的内容。即使:STEP_2中存在错误,仍会调用:STEP_1

我的问题是,是否有可能达到我的要求?要退出整个批处理文件而不是:STEP_1上下文,因此不会调用:STEP_2

1 个答案:

答案 0 :(得分:4)

您可以将以下(GOTO) 2>NUL与退出结合使用,这应该可以帮到您。

:ERROR
(goto) 2>nul & exit /b 1

有关详细信息,请参阅this