0

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

我的问题的详细信息:

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

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

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

如何仅将标准错误输出输出到.txt文件,如果可能但没有必要,将常规输出保留到控制台?

奖励积分:

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

4

1 回答 1

3

尝试这个:

   command.exe 2>file.txt

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

   command.exe 2>nul

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

于 2012-02-21T13:53:52.907 回答