windows cmd不会在文本文件中显示完整的输出



如果我打开windows cmd并键入以下命令:复制D:\1.text C:
然后我看到这个结果:访问被拒绝。已复制0个文件。

但是使用此命令:副本D:\1.text C:\>d: \output.txt输出文本文件仅显示以下内容:已复制0个文件。

为什么";访问被拒绝"不在output.txt中?以及如何在文本文件中获得完整的输出?

通过> somefile.txt将命令的输出重定向到文件只会重定向写入";标准输出";流到文件时,它不包括写入"em"的数据;标准误差";流;访问被拒绝"这封信是在你的情况下写的。要捕获所有输出,您需要将2>&1附加到命令末尾,例如:

copy D:1.txt C: > d:output.txt 2>&1

这可以理解为将写入标准错误(流2(的数据发送到标准输出(流1(的指令。

您还可以将标准错误重定向到另一个文件以进行标准输出,例如:

copy D:1.txt C: > d:output.txt 2> d:errors.txt