• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FOR文内でサブルーチンをCALLした際の、ERRORLEVELの取得)

FOR文内でサブルーチンをCALLした際のERRORLEVELの取得

このQ&Aのポイント
  • FOR文内でサブルーチンをCALLする際のERRORLEVELの取得方法がわからない
  • バッチファイル内のFOR文でサブルーチンをCALLした際、ERRORLEVELがうまく取得できない
  • ファイルをコピーしてFOR文で処理を繰り返す際、サブルーチンのERRORLEVELを取得できない

質問者が選んだベストアンサー

  • ベストアンサー
  • nidoking
  • ベストアンサー率69% (18/26)
回答No.1

環境変数は、一行ごとに解釈されるようです。 %ERRORLEVEL%も同様です。 for ( ... )は、一文とみなされ、for文内でERROELEVELが変わっていても、 echo文の%ERRORLEVEL%は、for文実行前の値となってしまいます。 実際には、ERRORLEVELはセットされており、 if errorlevel では、ちゃんと機能します。 実行中に変更される環境変数を使用するためには、 遅延環境変数という機能があります。 cmd /v:onとしてコマンドプロンプトを起動後、 変数を、!ERROELEVEL! と指定することで、実行中に変更された環境変数を使用することができます。 以上

kazuki06
質問者

お礼

nidokingさん 回答ありがとうございました。 cmd /v:onはうまく使えなかったので setlocal enabledelayedexpansion ~ endlocal を使用しましたが、お陰さまで解決出来ました。 遅延環境変数という機能があるのですね。知りませんでした。

関連するQ&A

専門家に質問してみよう