コマンドプロンプト(MS-DOS)で標準エラー出力をパイプするには?
Posted by kumacchi on 2013年7月19日 , No comment
コマンドプロンプトでの標準エラー出力をリダイレクトする方法は、過去の下記の記事を書いた。
コマンドプロンプト(MS-DOS)で標準エラー出力もリダイレクトするには? – KUMA TYPE
標準エラー出力をパイプする必要があったので、いくつか試してみたけどうまくいかなかったので調べてみた。
参考:
下記のようにすれば、program1.exeの標準出力と標準エラー出力をprogram2.exeにパイプすることができる。
>program1.exe 2>&1 | program2.exe
標準エラー出力のみをパイプしたい時は、多分下記のようにすればできる。
>program1.exe 2>&1 > NUL | program2.exe
一応普通の標準出力のパイプも書いておく。
>program1.exe | program2.exe
ついでに、標準出力と標準エラー出力を別々のファイルにリダイレクトする方法。
>program1.exe 1> out1.txt 2>out2.txt
perlでテストする時のサンプルとも言えないようなサンプル。標準出力で「stdout」標準エラー出力で「stderr」と出力する。
std.pl
print STDOUT "stdout\n";
print STDERR "stderr\n";
コマンドプロンプト上で、perlスクリプトで、パイプを受け取る時、下のようなスクリプトを書いたとして。
test.pl
while(<STDIN>){
print $_;
}
program1.exe | test.pl だとSTDINで受け取れないけど、
program1.exe | perl test.pl だとSTDINで受け取れるのはなんでなんだぜ?
やっぱりtest.plはあくまでもスクリプトで、perl.exeが受け取らないといけないってことかな?
掘り下げてないけどそれだけ覚て置くためにメモっておこう。
(Visited 1,212 times, 1 visits today)
タグ :
カテゴリ:
PC・インターネット