【Windowsバッチ・DOS】標準出力・リダイレクト回りまとめ

CUIツールを作ったので色々メモ。

標準出力をファイルにリダイレクト

echo text > stdlog.txt

標準エラーをファイルにリダイレクト

mkdir c:\ 2> errorlog.txt

標準出力と標準エラーをまとめてファイルにリダイレクト

mkdir c:\ > log.txt 2>&1

コンソールにも出力してリダイレクトにも書く

結論から言うと、DOSの標準環境だけじゃ無理。 全部出力し終えてから一気に表示するだけならtypeを使えばよい。

環境は限られるが、 Linuxにteeというコマンドがあり、Windows実装にした「safetee」というツールが有名。

safetee www.vector.co.jp

Linux teeコマンド

【 tee 】 標準入力を標準出力とファイルに出力する | 日経クロステック(xTECH)

2022/08/23 追記:久しぶりにこの周りをいじっていたところ、素晴らしいVBSを公開されているかたがいた。

qiita.com

このスクリプトをShiftJISのtee.vbsとして保存し、「cscript tee.vbs /a sample.log」などと打つと動作する。