- ベストアンサー
バッチのcallの使い方で、これって合ってるか教えてください。
下記のようなバッチスクリプトを作りました。 ************************************** FC AAA.txt BBB.txt if not %errorlevel% EQU 0 call :ERR-SEC 10 FC CCC.txt DDD.txt if not %errorlevel% EQU 0 call :ERR-SEC 11 exit 0 :ERR-SEC echo 終了コード:[%1] > EEE.log exit %1 ************************************** 気にしているのはcallの使い方です。 どこの処理でエラーが起きたかあとでわかるように、 callでエラーセクションをパラメータを渡して呼び出し、 引数をログ出力と終了値に使用しています。 callは本来、2回終わらせる必要があると参考書に記載されていたのですが、 このバッチではexitで無理やり終わらせています。 このような使い方は問題ないでしょうか? なにか気になる点があればぜひ教えてください。 よろしくお願いします。 ちなみにOSはWindows2003Serverです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
コマンドプロンプトから起動すると、exitでコマンドプロンプトごと終了します。また、他のスクリプトからcallで呼ぶとexitで全体が終了します。 そういう使い方をしないのなら問題ないです。 gotoにする手もありますね。 FC AAA.txt BBB.txt if not %errorlevel% EQU 0 set CC=10&goto ERR-SEC FC CCC.txt DDD.txt if not %errorlevel% EQU 0 set CC=11&goto ERR-SEC goto :EOF :ERR-SEC echo 終了コード:[%CC%] > EEE.log goto :EOF