標準出力をファイルへ出力

広告

コマンドの多くは実行された結果を標準出力と呼ばれるデバイスへ出力します。デフォルトでは標準出力は画面に設定されているので、結果的にコマンドの実行結果は画面に出力されることになります。

例えば次の例を見てください。

p1-1

DIRコマンドは内部コマンドの一つで、カレントディレクトリに含まれるファイルとディレクトリの一覧を標準出力へ出力します。標準出力はデフォルトで画面となっていますので、DIRコマンドを実行するとその結果が画面上に表示されます。

ではこの実行結果をファイルにコピーしたい場合どうすればいいでしょうか。画面に表示された結果を範囲指定してコピーしてからテキストエディタに貼り付け、そのファイルを保存すればできます。ただそもそもDIRコマンドの実行結果を画面ではなくファイルに対して出力できれば簡単です。

このような場合にリダイレクトを使うと便利です。リダイレクトでは標準出力向けに出力された内容をどのデバイスに出力するのかを指定することができます。

書式は次の通りです。

コマンド 1> ファイル名

「1>」の左側が標準出力に対して出力したものを、「1>」の右側のデバイスに対して出力するように指定しています。なお「1」は標準出力であるSTDOUTハンドルを表しており、省略した場合は「1」が指定されたものと見なされますので単に次のように記述することができます。

コマンド > ファイル名

出力先としてファイル名を指定した場合、指定したファイルが存在しない場合はファイルを新規に作成した上で出力を行います。既にファイルが存在した場合には新しい内容で上書きします(元々ファイルに含まれていた内容は無くなりますので注意して下さい)。

例えばDIRコマンドの結果をresult.txtというファイルに書き込むには次のように入力します。

dir > result.txt

この時、標準出力への出力がファイルへと変更されていますので、画面にはコマンドの実行結果は何も出力されません。

サンプル

では実際に試してみます。まずはリダイレクトを使用せずにDIRコマンドを実行してみます。

p1-2

実行結果は画面に出力されました。次にリダイレクトを使ってコマンドの実行結果をファイルへ出力してみます。

p1-3

実行結果は「result.txt」ファイルへ出力されました。このファイルは存在していませんでしたので新規にファイルが作成された上で実行結果が書き込まれています。またこの時実行結果は画面には何も出力されていません。

では「result.txt」ファイルをテキストエディタで開いてみます。

p1-4

DIRコマンドの実行結果がファイルに出力されていることが確認できました。

このように内部コマンドやプログラムなどの実行結果をファイルに出力したい場合に大変便利な機能です。ではもう一つサンプルを試してみます。今度は指定した簡単なテキストが書き込まれたファイルを作成してみます。

p1-5

ECHOコマンドは引数に指定した文字列を画面に出力するためのコマンドですが、リダイレクトを使うことで引数に指定した文字列が含まれるテキストファイルを1つ簡単に作成することができます。

では「memo.txt」ファイルをテキストエディタで開いてみます。

p1-6

引数で指定した文字列を含むファイルが作成されていることが確認できました。

( Written by Tatsuo Ikura )