windows cmd 不显示文本文件中的完整输出
如果我打开 Windows cmd 并输入以下命令: 复制 D:\1.txt C:
然后我看到这个结果: 访问被拒绝。 复制了 0 个文件。
但用这个命令: 复制 D:\1.txt C:\ > d:\输出.txt 输出文本文件仅显示以下内容: 复制了 0 个文件。
为什么“访问被拒绝”。不在output.txt中?我怎样才能在文本文件中获得完整的输出?
if I open windows cmd and type this command:
copy D:\1.txt C:
then I see this result:
Access is denied.
0 file(s) copied.
but with this command:
copy D:\1.txt C:\ > d:\output.txt
output text file shows only this :
0 file(s) copied.
why "Access is denied." is not in output.txt? and how could I have complete output in text file?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通过
> 将命令的输出重定向到文件somefile.txt
仅将写入“标准输出”流的数据重定向到该文件,它不包含写入“标准错误”流的数据,这是“访问被拒绝”的地方”。消息写在你的情况下。要捕获所有输出,需要在命令末尾追加2>&1
,eg:这可以理解为将写入标准错误(流2)的数据发送到标准的指令输出(流 1)。
您还可以将标准错误重定向到不同的文件到标准输出,例如:
Redirecting a command's output to a file via
> somefile.txt
only redirects the data written to "standard output" stream to the file, it does not include data written to "standard error" stream, which is where the "Access is denied." message is written in your case. To capture all output, you need to append2>&1
to the end of the command, e.g.:This can be understood as an instruction to send data written to standard error (stream 2) to standard output (stream 1).
You can also redirect standard error to a different file to standard output with e.g.: