windows cmd 没有在文本文件中显示完整的输出

windows cmd dos not show complete output in a text file

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

但是使用这个命令: 复制 D:\1.txt C:\ > d:\output.txt 输出文本文件仅显示: 已复制 0 个文件。

为什么“访问被拒绝”。不在output.txt?我怎样才能在文本文件中得到完整的输出?

通过 > somefile.txt 将命令的输出重定向到文件只会将写入“标准输出”流的数据重定向到文件, 包括写入到的数据“标准错误”流,这是“访问被拒绝”的地方。消息写在你的情况下。要捕获所有输出,您需要将 2>&1 附加到命令末尾,例如:

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

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

您还可以将标准错误重定向到不同的文件以输出标准输出,例如:

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