2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« コマンドラインで、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ソースを取り出す。 | トップページ | パイプの前後で遅延展開を使う。 »