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
如果我打开 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