如何在 DOS(批处理文件)中将标准错误传送到文件?

发布于 2025-01-08 05:11:42 字数 757 浏览 2 评论 0原文

如何将标准错误传送到 DOS 批处理文件中的文件?使用 >> 进行管道传输仅传输标准输出,标准错误仍然发送到控制台。

我的问题的详细信息:

我正在通过命令行运行 WinRAR,进行自动每日备份。下面的示例将 WinRar 的输出(但不是我最想要的错误输出)传送到 winraroutput.txt

RAR.exe a -esh -r "E:\backup.rar" "D:\*.*" >> winraroutput.txt

问题是有时文件正在使用中,当它们使用时我想知道它们是在使用中存档中遗漏的内容并将其记录在每个 .rar 文件旁边的 .txt 文件中,以防我们必须返回。丢失的文件很容易通过重新安装程序来替换,因此只要我们知道它们丢失了,替换它们就没什么大不了的了。因此,这只是在需要时了解的信息,而不是必要的信息。

如何仅将标准错误输出输出到 .txt 文件,并在可能但不必要的情况下将常规输出保留到控制台?

加分:

如果你能告诉我如何删除空白文件(没有错误),加分!此处询问:如何使用 Windows 批处理文件检测(并删除)文件是否为空?

How do I pipe standard error to a file in a DOS batch file? Piping using >> only pipes the standard output and the standard error still goes to the console.

Details of my issue:

I am running WinRAR via command line, in an automated daily backup. And the following example pipes WinRar's output, but not the error output which is what I want most, to winraroutput.txt:

RAR.exe a -esh -r "E:\backup.rar" "D:\*.*" >> winraroutput.txt

The issue is sometimes files are in use and when they are I want to know they were missed in the archive and record this in a .txt file next to each .rar file in case we ever have to go back. The missing files are easily replaced by reinstalling programs so it's no big deal to replace them, as long as we know they are missing. So it's just information that would be great to know, not necessary, in the time of need.

How do I output just the standard error output to the .txt file and, if possible but not necessary, leave the the regular output to the console?

Bonus points:

Bonus points if you can tell me how to delete the file if it's blank (no errors)! Asked here: How do I Detect (and Delete) a File if it is Empty using a Windows Batch File?.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

亣腦蒛氧 2025-01-15 05:11:42

试试这个:

   command.exe 2>file.txt

或者如果您不想看到任何错误,请将其发送到 nul:

   command.exe 2>nul

这应该在控制台上留下 std::cout 。

Try this:

   command.exe 2>file.txt

Or if you prefer not to see any errors, send it to nul:

   command.exe 2>nul

This should leave std::cout on the console.

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