WindowsBat

【Windowsバッチ】変数の値が変わらない時は、遅延環境変数を疑おう

WindowsBat
Windowsバッチでは、コードを読み込むときではなくて、実際にその処理を実行するときに値を展開する。

ifやforのブロックはまとめて読み込まれる。
そのため、以下のようなケースでは意図と異なった挙動をする。

echoの結果はBでなくAになってしまう。

以下のようにすると読み込み時ではなく、実行時に変数を展開する。
(@setlocal enabledelayedexpansionの宣言が必要なことに注意)

echoの結果はBになる。

ちなみに以下のケースでは、読み込みブロックが異なるのでBになる。

echoの結果はB

■参考:https://wa3.i-3-i.info/word12518.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">