本文介绍如何从命令提示符重定向错误消息。
原始产品版本: Visual C++
原始 KB 编号: 110930
总结
使用 >
符号从应用程序重定向输出时,错误消息仍会打印到屏幕。 这是因为错误消息通常发送到标准错误流而不是标准传出流。
控制台(命令提示符)应用程序或命令的输出通常发送到两个单独的流。 常规输出将发送到标准输出(STDOUT),错误消息将发送到标准错误(STDERR)。 使用 >
符号重定向控制台输出时,只会重定向 STDOUT。 若要重定向 STDERR,必须指定 2>
重定向符号。 这会选择 STDERR 的第二个输出流。
示例
命令 dir file.xxx
(其中 file.xxx 不存在)将显示以下输出:
驱动器 F 中的卷是 Candy Cane Cane 卷序列号为 34EC-0876
找不到文件
如果将输出重定向到使用 dir file.xxx > nul
NUL 设备,仍会看到错误消息:
找不到文件
若要将错误消息重定向到 NUL,请使用以下命令:
dir file.xxx 2> nul
或者,可以将输出重定向到一个位置,并将错误重定向到另一个位置。
dir file.xxx > output.msg 2> output.err
可以使用命令将 STDERR 的输出重定向到 &1
STDOUT,然后将 STDOUT 的输出发送到文件,将错误和标准输出打印到单个文件:
dir file.xxx 1> output.msg 2>&1