2015年11月3日火曜日

遅延環境変数

仕事でWindowsバッチを書く機会がこれから増えそう。ということでWindowsバッチの復習をやってみた。全然使っていないと,やっぱりすっからかんに忘れている。

遅延環境変数ってなんだったけ?となったのでメモを書く。遅延環境変数というのは,環境変数の置換を遅延させるもの。Windowsバッチでは「行(実際改行される単位とは異なる)」単位で読み込み,読み込んだときに環境変数を中身の値に置換して処理をやっている。遅延環境変数を使わない(setlocal enabledelayedexpansionの指定なし)場合,前述の方法で環境変数が展開されるので,ちょっと直感に合わない動きになってハマったりすることがある。なので,これを気にせずバッチを書くには,バッチの行頭あたりに,setlocal enabledelayedexpansionを指定して,環境変数の値参照のときに%%を使うんじゃなくて,!!を使うことにすれば解決する。

0 件のコメント: