在 Windows 7 cmd shell 中是否有一种方法可以将 stderr 重定向到 stdout 同时保持 stderr 流完整?
例如,我有一个程序将以下消息输出到 stderr 和 stdout
TO STDOUT
TO STDERR
我想要两个文件 stderr.txt 和 stdout.txt,内容如下
标准错误输出
到标准错误标准输出文件
到 STDOUT
到 STDERR
这可能吗?
答案1
我想这就是你想要的:
dir a.txt > output.msg 2> output.err >&1
或者
dir 1>a.txt 2>&1 | type a.txt
2>
重定向标准错误
&1
发送标准错误回到标准错误。
我必须测试一下才能给你更好的答案
答案2
这是不完善的,但它能起作用。clip.exe 随 Windows 的现代版本提供,您可以从多个来源下载它的对应程序 - paste.exe。
此行假定文件 yyz.pdq 不存在,因此将向 stderr 生成“文件未找到”消息:
(dir yyz.pdq 3>&1 1>&2 2>&3) | clip & paste >con & paste >err.txt
此形式的命令将按照最初的请求重定向到 stderr 和 stdout+stderr 的单独文件:
((dir yyz.pdq 3>&1 1>&2 2>&3) | clip & paste & paste >err.txt) 1>out.txt 2>&1