私はそれにいくつかのサブルーチンと、このような何かWindowsバッチファイルを持っている:私はVista上のcmdウィンドウでこれを実行している'call'edルーチン内からWindowsバッチファイルを終了する方法は?
call :a
goto :eof
:a
call :b
goto :eof
:b
:: How do I directly exit here from here?
goto :eof
を。
バッチファイルのどこかでエラーが検出された場合は、エラーレベルがゼロ以外で終了します。ルーチンに書くことができるものはありますか?これは、バッチファイルをこのように終了させる原因になります。
- 「exit」を試しましたが、これはcmdウィンドウ全体を閉じます。それは私が望むものではありません。
- 私は 'exit/B1'を試しました。それは以前のルーチンに戻ります。すべての '呼び出し'の後にこのスキームを使用するには、呼び出しスタックをバックアップするエラーを渡すたびに、 'callle'の後に 'errorlevel 1 exit/B 1'を注意深く記述する必要があります。私はすべての呼び出しの後にこの行を書く必要はありません。
この記事は面白かったですが、選択肢の中で私が望むように行動しません。 http://www.computerhope.com/exithlp.htm
別の方法がありますか?
ありがとうございました。
よろしくお願いいたします。これはこれまでのところ最高です。これから、 "call:a || goto:eof"を使用すると、エラーレベルがバックアップに反映されます。特定のエラーレベルにいくつかの意味がある場合に役立ちます。 –
はい、それは本当に良いと思います。それを考えなかった。また、私が概説した再帰的アボートは実際の選択肢ではないと思います。 – Joey
はい、再帰的アボートは新規であったが、そこから少し遠すぎた! :) –