本文說明從命令提示字元重新導向錯誤訊息。
原始產品版本: Visual C++
原始 KB 編號: 110930
摘要
使用 >
符號將應用程式的輸出重新導向時,錯誤訊息仍會列印到畫面。 這是因為錯誤訊息通常會傳送至標準錯誤數據流,而不是標準輸出數據流。
主控台的輸出(命令提示字元)應用程式或命令通常會傳送至兩個不同的數據流。 一般輸出會傳送至標準輸出 (STDOUT),並將錯誤訊息傳送至標準錯誤 (STDERR)。 當您使用 >
符號重新導向主控台輸出時,您只會重新導向 STDOUT。 若要重新導向 STDERR,您必須指定 2>
重新導向符號。 這會選取 STDERR 的第二個輸出數據流。
範例
命令 dir file.xxx
(其中 file.xxx 不存在)會顯示下列輸出:
磁碟驅動器 F 中的磁碟區是 Candy Cane Cane 磁碟區序號為 34EC-0876
找不到檔案
如果您使用 將輸出重新導向至 NUL 裝置 dir file.xxx > nul
,您仍然會看到錯誤訊息:
找不到檔案
若要將錯誤訊息重新導向至 NUL,請使用下列命令:
dir file.xxx 2> nul
或者,您可以將輸出重新導向至某個位置,並將錯誤重新導向至另一個位置。
dir file.xxx > output.msg 2> output.err
您可以使用 命令將 STDERR 的輸出重新導向至 STDOUT,然後將 STDOUT 的輸出傳送至檔案,將錯誤和標準輸出列印至單一檔案 &1
:
dir file.xxx 1> output.msg 2>&1