Programming Field

「>」 (出力リダイレクト) - DOS/コマンドプロンプト コマンド一覧

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

構文

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

解説

「>」使用例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.>&2

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