コマンド リダイレクト演算子を使用する( Using command redirection operators )

✅ Microsoft ドキュメント
コマンド リダイレクト演算子を使用する

⭐ 単純な リダイレクト は > です。
 コマンドプロンプトに表示されるはずの文字列をファイルに書き込みます。

⭐ >> を使うと追加書き込みです。

このような記号は、リダイレクト演算子と呼ばれます。

STDIN

0

キーボード入力

STDOUT

1

標準出力

標準エラー出力

2

Error output to the Command Prompt window

0、1、2 は ハンドル番号で、既存のハンドルへのリダイレクトを指定するには、アンパサンド(&)文字の後にリダイレクトしたいハンドル番号を使用します。

なので、2>&1 は 標準エラー出力を標準出力にリダイレクトする事を意味します。

▼ 解りやすいテストはエラーだけに着目して、以下のように実行します。
C:\temp>dir x
 ドライブ C のボリューム ラベルは Windows10 です
 ボリューム シリアル番号は 40B9-7D17 です

 C:\temp のディレクトリ

ファイルが見つかりません

( x が存在しないので『ファイルが見つかりません』と言うエラーメッセージが出ます )

この『ファイルが見つかりません』は、dir x > message.txt としても message.txt には書き込まれまれずに、コマンドプロンプトに表示されます。

しかし、以下のようにすれば全て書き込む事ができます。

dir x > message.txt 2>&1

この方法は解りにくいですが、標準出力と標準エラー出力を同時にリダイレクトしたいときに意味があります。

dir x 2> message.txt

だと、ファイルが見つかりません だけが書き込まれてしまいます。

キーボード入力をファイル化

リダイレクト演算子を使用して、キーボードから入力した文字列をテキストファイルに書き込む事ができます。

type con > message.txt

type コマンドは、ファイルの内容をコマンドプロンプトに表示するコマンドですが、con と言う特殊な予約文字列を使用すると、キーボードをファイルとみなした動作を行います。
※ 終了時は 改行入力後、CTRL+Z を入力してEnter です

空のファイルを作成する

nul と言う予約文字列を使用して以下のように実行します

type nul > message.txt

実行結果を表示しない

nul は存在しないファイルのようなものなので、標準結果への出力を無かった事にできます

dir *.* > nul

エクスプローラで作成できないファイルを作成する

.(ドット) で始まるファイルはエクスプローラで作成できませんが、以下のようにすれば作成する事ができます

type nul > .htaccess

| (パイプ) で標準出力を標準入力に受け渡す

sort コマンドは、標準入力をソートします。その際、標準入力へ渡す方法の一つとして |(パイプ) があります。

dir | sort

このようにすると、ソートした結果が表示されます。この際、データが多いと内容が一気に表示されてしまいます。この時、CTRL+S キーで一旦停止する事ができますが以下のようにすると表示できる単位で一旦停止をする事ができます。

dir | sort | more

続きはスペースキーで参照し、強制終了は CTRL + C となります。

< (リダイレクト入力) で標準入力にデータを渡す

パイプ以外にも、標準入力のあるプログラム < ファイルのパス で標準入力にファイルの内容を直接渡す事ができます

sort < message.txt