この記事では、コマンド プロンプトからのエラー メッセージのリダイレクトについて説明します。
元の製品バージョン: 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