3 回答
TA贡献1850条经验 获得超11个赞
2>&1
1>
REM *** WARNING: THIS WILL NOT REDIRECT STDERR TO STDOUT **** dir 2>&1 > a.txt
dir > a.txt 2>&1
>>
.
TA贡献2051条经验 获得超10个赞
来自MSKB的背景信息
来自MSKB 110930
从命令提示符重定向错误消息:STDERR/STDOUT
摘要
当使用class>‘>符号重定向应用程序的输出时,错误消息仍然打印到屏幕上.这是因为错误消息通常被发送到标准错误流,而不是标准输出流。
控制台(命令提示符)应用程序或命令的输出通常发送到两个单独的流。常规输出被发送到标准输出(STDOUT),错误消息被发送到标准错误(STDERR)。当您使用“>”符号重定向控制台输出时,您只是重定向STDOUT。为了重定向STDERR,您必须为重定向符号指定‘2>’.这将选择第二个输出流,即STDERR。
例
命令 dir file.xxx
(在哪里 file.xxx
)将显示以下输出: Volume in drive F is Candy Cane Volume Serial Number is 34EC-0876 File Not Found
如果将输出重定向到 NUL
设备使用 dir file.xxx > nul
,您仍将看到输出的错误消息部分,如下所示: File Not Found
将错误消息重定向(仅)到 NUL
,使用以下命令: dir file.xxx 2> nul
或者,您可以将输出重定向到一个地方,将错误重定向到另一个地方。 dir file.xxx > output.msg 2> output.err
您可以通过使用“&1”命令将STDERR的输出重定向到STDOUT,然后将输出从STDOUT发送到文件,从而将错误和标准输出打印到单个文件: dir file.xxx 1> output.msg 2>&1
添加回答
举报