【Windows】コマンドの実行結果をファイルに出力する(標準出力、標準エラー出力)

Windows

コマンド実行結果をファイルに出力するための方法を紹介します。

cmdで以下のことを試していきます。

  • 標準出力をファイルに出力
  • 標準エラー出力をファイルに出力
  • 標準出力、標準エラー出力をファイルに出力
  • 出力結果をファイルに追記

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

コマンドを実行するとcmd上で出力結果が表示されます。

通常のコマンド実行時

上記のような標準出力をファイルに出力するには以下のようにします。

コマンド > ファイルパス

※指定したファイルパスが存在しない場合は新規で作成されます。

dir > stdout.txt

ファイルへコマンドの実行結果を出力
標準出力と呼ばれ、英語表記はstdout

今度はコマンドプロンプト上では出力されず、指定したファイルに出力されます。

ファイル名で指定した「stdout.txt」の中身を確認してみます。

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

標準エラー出力をファイルに出力

標準エラー出力はエラーメッセージを出力します。

以下、例となります。

標準エラー出力の例

標準出力とは異なりますので「標準出力をファイルに出力」で紹介した方法では
標準エラー出力をファイルに出力することはできません。
ファイルは作成されますがコマンドプロンプト上に結果が表示され、ファイルの中身は空です。

標準エラー出力はこのやり方だとファイルに出力できない

標準エラー出力をファイルに出力するには以下のようにします。

コマンド 2> ファイルパス

pwd 2> stderr.txt

標準エラー出力は 2> とすることでファイルに出力ができる

ファイル名で指定した「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

ファイルへ追記して出力

「>>」を指定することで出力結果をファイルに追記できます。

実行結果がファイルに追記されながら出力されている

コメント

Verified by MonsterInsights
タイトルとURLをコピーしました