導入
コマンドの結果は普通、画面に表示されます。この行き先を ファイルに保存 したり、別のコマンドへ渡し たりできます。ログ取りやフィルタリングに欠かせない仕組みです。
説明
コマンド > ファイル… 結果をファイルに書き出す(上書き)コマンド >> ファイル… 結果をファイルの末尾に 追記コマンド | 別コマンド… 結果を次のコマンドへ パイプ で流す2>… エラー出力の行き先を変える。2>nulでエラーを捨てる
@echo off
rem 一覧をファイルに保存(上書き)
dir > filelist.txt
rem ログに1行追記
echo %DATE% %TIME% 実行しました >> run.log
rem 一覧のうち「.txt」を含む行だけ抽出
dir | find ".txt"
nul は「何もない場所(捨て場)」を指す特別な名前です。> nul で通常の出力を、2> nul でエラー出力を捨てられます。両方まとめて捨てるなら > nul 2>&1 と書きます(2>&1 は「エラー出力を通常出力と同じ行き先へ」の意味)。
@echo off
rem 存在確認のメッセージも要らないので黙って実行
mkdir temp 2>nul
rem 結果もエラーも一切表示せず実行
ping localhost > nul 2>&1
echo 疎通確認が終わりました
find や findstr にパイプで渡すと、出力の中から目的の行だけを取り出せます。findstr は正規表現も使える強力版です。
やってみよう
echo %DATE% %TIME% 起動 >> mylog.txt を何回か実行し、mylog.txt を開いてみましょう。>> なので消えずに行が積み重なっていくのが確認できます。