2007-01-16 [長年日記]
_ [win] バッチファイルの環境変数遅延評価
バッチファイルの罠にはよく苦しめられるのだが、
#それはつまり有用だからよく使っていることの裏返しなのだけど
また今日新たな罠にはまった。
バッチファイルでは環境変数を変数としてよく扱う。
set RESULT=FAIL
とかとか。
んで、IF文でこいつを分岐させると、、、
IF "%RESULT%"=="FAIL"
SET STR="NG!"
) ELSE (
SET STR="OK!"
)
ECHO %STR% > log.txt
なんて書きたくなるのだけど、これがうまく動かないときがある。
#うまく動いてしまうこともあるのでよくはまる。。。
こんなときは正しくは以下のように書くようだ。
環境変数がバッチファイル内だけに閉じるように
バッチファイル先頭にsetloal、
バッチファイル末尾にendlocalとおまじないをつける。
その先頭のsetlocal を
setlocal enabledelayedexpansion
に変更する。
さらに、最後のECHO文は
ECHO !MAIL_STR! > log.txt
と感嘆符でくくる。
これで感嘆符でくくった環境変数の評価時期が変わって、
!HOGE!だと実行時に評価されるようになるそうです。
%HOGE%だとバッチファイルが読み込まれたときに評価されます。
リンクのページに丁寧に解説がありますので、そちらもどぞ。
---
setlocal enabledelayedexpansion
if "%RESULT%"=="FAIL"
set STR="NG!"
) else (
set STR="OK!"
)
echo !STR! > log.txt
endlocal
_ 時をかける少女DVD
会社の「時かけ」にはまっていた同僚からDVDが出ると聞いたので、
自慢げにまた他の時かけ好きの同僚にその旨を話したところ
「ああ、知ってますよ。というか既に予約しました。限定版。」
とカウンターを食らい、
ああ、やっぱり僕などはまだまだですとおいそれよろしく撤退した今日この頃です。
そんなわけでついにDVDが4月に発売!
既にアマゾンで予約できます。
問題は限定版(10000円)か通常版(5000円)か。
どちらも25%OFFなんでだったら限定版でもいいかなーと思ってしまいます。
限定版はまだ何が特典でついてくるか分からないみたいです。
もうちょっと考えてみよう。
そんなわけで今日はサントラも売ってることを発見したのでぽちっとな。
絵コンテもほすぃーなー。
あ、NOTEBOOKってのもあるんですね。
なんか多角戦略にしてやられてる感じがするなぁ。(^^;)
・・・・島田淳子の出てない時をかける少女なんて...ボソッ<br>ww
>提督<br>すいません、島田淳子版どころか原田知世版も見たことないです。。。(^^;)