从命令提示符重定向错误消息:STDERR/STDOUT
本文介绍如何从命令提示符重定向错误消息。
原始产品版本: Visual C++
原始 KB 编号: 110930
摘要
使用 >
符号重定向应用程序输出时,错误消息仍会打印到屏幕。 这是因为错误消息通常发送到标准错误流,而不是标准输出流。
控制台 (命令提示符) 应用程序或命令的输出通常发送到两个单独的流。 常规输出将发送到标准输出 (STDOUT) ,错误消息将发送到标准错误 (STDERR) 。 使用 >
符号重定向控制台输出时,只会重定向 STDOUT。 若要重定向 STDERR,必须 2>
指定重定向符号。 这会选择 STDERR 的第二个输出流。
示例
不存在 file.xxx 的命令 dir file.xxx
() 将显示以下输出:
驱动器 F 中的卷是 Candy Cane Volume 序列号为 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
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈