« コマンドラインで、URLからHTMLソースを取り出す。 | トップページ | パイプの前後で遅延展開を使う。 »

2007年3月18日 (日)

パイプの前後は子CMDプロセスで実行されます。

パイプの前後がどのように実行されているかは、
以下のバッチファイルを実行してみると分ります。

echo %%cmdcmdline%% >&2 | echo %%cmdcmdline%%

C:\WINDOWS\system32\cmd.exe /S /D /c" echo %cmdcmdline%"

複数行の複文は&で結合されて1行にされて実行されます。

(
echo %%cmdcmdline%%
echo %%cmdcmdline%%
)|more

C:\WINDOWS\system32\cmd.exe /S /D /c" ( echo %cmdcmdline% & echo %cmdcmdline% )"

FOR文のIN ('コマンド')も子CMDプロセスで実行されます。

for /f "delims=" %%1 in ('echo %%cmdcmdline%%') do echo %%1

C:\WINDOWS\system32\cmd.exe /c echo %cmdcmdline%

« コマンドラインで、URLからHTMLソースを取り出す。 | トップページ | パイプの前後で遅延展開を使う。 »