« 「管理者として実行」されたコマンドラインから、「標準ユーザとして実行」する。 | トップページ | エクスプローラから「別のユーザーとして実行」する。 »

2010年1月14日 (木)

環境変数を遅延展開する第3の方法とは?

第1は、!環境変数!
第2は、call %%環境変数%%
第3は、for

for /f "delims== tokens=1*" %%i in ('set 環境変数') do echo %%j

数字限定でよければ、

for /f %%i in ('set /a 環境変数') do echo %%i

第2の方法は、ifやforに使えませんが、第3の方法なら使えます。

(rem これは駄目。
set x=1
call if %%x%%==1 echo %%x%%
)

(rem これはおk。
set x=1
for /f "delims== tokens=1*" %%i in ('set x') do if %%j==1 echo %%j
)

また、第3の方法ならバッチファイル外でも使えます。

« 「管理者として実行」されたコマンドラインから、「標準ユーザとして実行」する。 | トップページ | エクスプローラから「別のユーザーとして実行」する。 »