Programming Field

DOS コマンド一覧

> (出力リダイレクト)

この記号の左側で指定したコマンドの出力を、右側で指定したファイルの内容にします。(ファイルに出力します。)

構文

<command> [<num>]> <file-name>
<command> [<num>]>&<num>
[<num>]
[Windows NT 系] リダイレクト元のハンドル番号を指定します。「1」を指定すると標準出力(STDOUT)、「2」を指定すると標準エラー出力(STDERR)を表し、そこに出力された文字をリダイレクトします。省略すると「1」が指定されたものと見なされます。
&<num>
[Windows NT 系] リダイレクト先のハンドル番号を指定します。「1」を指定すると標準出力(STDOUT)、「2」を指定すると標準エラー出力(STDERR)を表し、そこに文字出力をリダイレクトします。例えばEchoコマンドは通常標準出力に文字列を出力しますが、「1>&2」を末尾に付けることで標準エラー出力に文字列を出力させることができます。

サンプル1
foo.exe > out.txt

「foo.exe」というプログラムが(標準出力STDOUTに)出力した内容を、「out.txt」に保存します。

サンプル2
type CON > save.txt

Typeコマンドで「CON(コンソール入力、つまりDOSでのキー入力)を表示する」、すなわち「キー入力を出力する」のを実行し、その出力内容(いわゆる入力内容)を「save.txt」に保存します。
(このコマンドはすぐにテキストファイルを作る時に使えます。入力を終了する時、Ctrl+Zを押して「^Z」と出力させて改行すると、入力を終了できます。Copyコマンドのサンプルも参照。)

サンプル3
hoge.exe 1> out.txt 2> err.txt

[Windows NT 系] 「hoge.exe」が出力する文字列のうち、通常の出力を「out.txt」に、エラー出力を「err.txt」に出力させます。これにより必要な情報をある程度分離させることができます。

サンプル4
echo Error. 1>&2

[Windows NT 系] Echoによる文字出力を標準出力ではなく標準エラー出力に変更します。これはバッチファイル内で特に有効で、例えばこの記述を含むバッチファイルが「aaa.bat」と仮定すると、コマンドプロンプト上で「aaa.bat > NUL」と指定されて実行していても「Error.」という文字列がプロンプト上に出力されるようになります(ただし別の方法で標準エラー出力がリダイレクトされている場合はこの限りではありません)。