« パイプの前後は子CMDプロセスで実行されます。 | トップページ | スクリプトからシフトキー類の押し下げ状態を調べる。 »

2007年3月18日 (日)

パイプの前後で遅延展開を使う。

パイプの前後の複文で遅延展開を使うにはどうするか?

CALLと%%を使う。^で変数名をエスケープします。^で^をエスケープします。

set aaa=111
(
set aaa=222
call echo %%^^aaa%%
)|more

CMD /V:ONを使う。^で!をエスケープします。

setlocal enabledelayedexpansion
set aaa=111
cmd /v:on /s /c "(set aaa=222 &echo ^!aaa^!)"|more

« パイプの前後は子CMDプロセスで実行されます。 | トップページ | スクリプトからシフトキー類の押し下げ状態を調べる。 »