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

发布于 2025-01-12 17:45:20 字数 205 浏览 0 评论 0原文

如果我打开 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

长伴 2025-01-19 17:45:20

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

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

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

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

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

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 append 2>&1 to the end of the command, e.g.:

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

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.:

copy D:\1.txt C:\ > d:\output.txt 2> d:\errors.txt
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文