if ブロック内で環境変数 BOOBOO の値を設定しても、設定されていないようです。ただし、if ブロックの終了後に設定されます。if ブロック内に値がないのはなぜですか?
Microsoft Windows XP [バージョン 5.1.2600] SP3 上で動作
echo BOOBOO is +++%BOOBOO%+++
echo step 1
setlocal enableextensions
IF "%BOOBOO%" == "" (
echo step 2
SET BOOBOO=xyz
echo step 3
echo BOOBOO has been set to %BOOBOO%
echo BOOBOO part is %BOOBOO:~0,2%
echo step 4
)
echo step 8
echo BOOBOO ends up as %BOOBOO%
echo step 9
EXIT /B 0
===
M:> t
BOOBOO is ++++++
step 1
step 2
step 3
BOOBOO has been set to
BOOBOO part is ~0,2
step 4
step 8
BOOBOO ends up as xyz
step 9