コマンド実行結果をファイルに出力するための方法を紹介します。
cmdで以下のことを試していきます。
- 標準出力をファイルに出力
- 標準エラー出力をファイルに出力
- 標準出力、標準エラー出力をファイルに出力
- 出力結果をファイルに追記
標準出力をファイルに出力
コマンドを実行するとcmd上で出力結果が表示されます。
上記のような標準出力をファイルに出力するには以下のようにします。
コマンド > ファイルパス
※指定したファイルパスが存在しない場合は新規で作成されます。
dir > stdout.txt
今度はコマンドプロンプト上では出力されず、指定したファイルに出力されます。
ファイル名で指定した「stdout.txt」の中身を確認してみます。
標準エラー出力をファイルに出力
標準エラー出力はエラーメッセージを出力します。
以下、例となります。
標準出力とは異なりますので「標準出力をファイルに出力」で紹介した方法では
標準エラー出力をファイルに出力することはできません。
ファイルは作成されますがコマンドプロンプト上に結果が表示され、ファイルの中身は空です。
標準エラー出力をファイルに出力するには以下のようにします。
コマンド 2> ファイルパス
pwd 2> stderr.txt
ファイル名で指定した「stderr.txt」にエラーメッセージが出力されているか確認します。
標準出力、標準エラー出力をファイルに出力
今度は標準出力、標準エラー出力どちらもファイルに出力する方法です。
以下のように指定します。
コマンド 1> ファイルパス 2>&1
または
コマンド 2> ファイルパス 1>&2
例として標準エラー出力を標準出力に転送します。
ifconfig 1> stdout_err.txt 2>&1
末尾で「2>&1」と指定することで標準エラー出力を標準出力にリダイレクトさせています。
ファイルを確認すると標準エラー出力がファイルに出力されていることが確認できます。
逆に標準出力を標準エラー出力に転送することもできます。
dir 2> stderr_out.txt 1>&2
ファイルに実行結果が出力されていることを確認します。
出力結果をファイルに追記
今までの方法は同じファイルに他の実行結果を出力したときに
前の実行結果は上書きされてしまいます。
同じファイルに追記する形でコマンドの実行結果をファイルに出力したいときは
以下のようにします。
コマンド >> ファイルパス
「ps.txt」というファイルを指定して連続でコマンドを実行してみます。
echo 追記できるかな1 >> ps.txt
echo 追記できるかな2 >> ps.txt
echo 追記できるかな3 >> ps.txt
「>>」を指定することで出力結果をファイルに追記できます。
コメント