2016-04-26 101 views
1

我試圖按如下方式創建批處理文件。如何從父批處理中退出

@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_1中存在錯誤,:STEP_2仍將被調用。

我的問題是,是否有可能完成我的要求?要退出整個批處理文件而不是:STEP_1上下文,將不會調用:STEP_2

回答

4

您可以使用以下(GOTO) 2>NUL與退出相結合,並且應該爲您做這項工作。

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

有關更多信息,請參閱this

+0

這真的很棒。謝謝! – lastr2d2