« unix tee擬似バッチファイル(その2) | トップページ | SET /Pはパイプをうまく読めない。(障害) »

2007年4月 4日 (水)

パイプ前後の複文中のECHOの行末に空白が付く。

(
echo aaa
echo bbb
)|hoge

では、

"aaa "
"bbb "

のようにECHOの行末に空白が付きます。

パイプの前後は、子CMDプロセスで実行されますが、
このとき、複文がcmd.exeによって、
cmd.exe /S /D /c" ( echo aaa & echo bbb )"
のように1行に整形されます。
こうして空白が付加されます。

したがって回避方法は、自分で複文を1行に整形する。

cmd /s /c "echo aaa&echo bbb"|hoge

或いは、複文を別のバッチファイルにする。

sub.cmd|hoge

« unix tee擬似バッチファイル(その2) | トップページ | SET /Pはパイプをうまく読めない。(障害) »