次の方法で共有


コマンド プロンプトからのエラー メッセージのリダイレクト: STDERR/STDOUT

この記事では、コマンド プロンプトからのエラー メッセージのリダイレクトについて説明します。

元の製品バージョン: Visual C++
元の KB 番号: 110930

まとめ

>記号を使用してアプリケーションから出力をリダイレクトする場合、エラー メッセージは引き続き画面に出力されます。 これは、多くの場合、標準出力ストリームではなく標準エラー ストリームにエラー メッセージが送信されるためです。

コンソール (コマンド プロンプト) アプリケーションまたはコマンドからの出力は、多くの場合、2 つの個別のストリームに送信されます。 標準出力は Standard Out (STDOUT) に送信され、エラー メッセージは標準エラー (STDERR) に送信されます。 >シンボルを使用してコンソール出力をリダイレクトする場合は、STDOUT のみをリダイレクトします。 STDERR をリダイレクトするには、リダイレクト シンボルの 2> を指定する必要があります。 これにより、STDERR である 2 番目の出力ストリームが選択されます。

コマンド dir file.xxx (file.xxx が存在しない場合) には、次の出力が表示されます。

ドライブFのボリュームはキャンディケインボリュームシリアル番号は34EC-0876です
File Not Found

dir file.xxx > nulを使用して出力を NUL デバイスにリダイレクトしても、エラー メッセージが表示されます。

File Not Found

エラー メッセージを NUL にリダイレクトするには、次のコマンドを使用します。

dir file.xxx 2> nul

または、出力をある場所にリダイレクトし、エラーを別の場所にリダイレクトすることもできます。

dir file.xxx > output.msg 2> output.err

エラーと標準出力を 1 つのファイルに出力するには、 &1 コマンドを使用して STDERR の出力を STDOUT にリダイレクトし、STDOUT からファイルに出力を送信します。

dir file.xxx 1> output.msg 2>&1