- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FOR文内でサブルーチンをCALLした際の、ERRORLEVELの取得)
FOR文内でサブルーチンをCALLした際のERRORLEVELの取得
このQ&Aのポイント
- FOR文内でサブルーチンをCALLする際のERRORLEVELの取得方法がわからない
- バッチファイル内のFOR文でサブルーチンをCALLした際、ERRORLEVELがうまく取得できない
- ファイルをコピーしてFOR文で処理を繰り返す際、サブルーチンのERRORLEVELを取得できない
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
環境変数は、一行ごとに解釈されるようです。 %ERRORLEVEL%も同様です。 for ( ... )は、一文とみなされ、for文内でERROELEVELが変わっていても、 echo文の%ERRORLEVEL%は、for文実行前の値となってしまいます。 実際には、ERRORLEVELはセットされており、 if errorlevel では、ちゃんと機能します。 実行中に変更される環境変数を使用するためには、 遅延環境変数という機能があります。 cmd /v:onとしてコマンドプロンプトを起動後、 変数を、!ERROELEVEL! と指定することで、実行中に変更された環境変数を使用することができます。 以上
お礼
nidokingさん 回答ありがとうございました。 cmd /v:onはうまく使えなかったので setlocal enabledelayedexpansion ~ endlocal を使用しましたが、お陰さまで解決出来ました。 遅延環境変数という機能があるのですね。知りませんでした。