2016-04-26 16 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_1コンテキストの代わりにバッチファイル全体を終了するには、:STEP_2は呼び出されません。

答えて

4

次の(GOTO) 2>NULをexitと組み合わせて使用​​することができます。それはあなたの仕事です。

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

詳細については、thisを参照してください。

+0

これは本当に素晴らしいです。ありがとう! – lastr2d2

関連する問題