如何将标准错误管道传输到DOS批处理文件中的文件?使用>>
的管道只管道标准输出,标准错误仍然会进入控制台。
我的问题详细信息:
我正在通过命令行运行WinRAR,在一个自动化的日常备份。下面的示例将WinRar的输出(但不是我最想要的错误输出)管道传输到winraroutput.txt
:
RAR.exe a -esh -r "E:backup.rar" "D:*.*" >> winraroutput.txt
问题是,有时文件正在使用中,当它们在使用时,我想知道它们在归档中丢失了,并将其记录在每个.rar
文件旁边的.txt
文件中,以防我们不得不返回。丢失的文件很容易通过重新安装程序来替换,所以替换它们没什么大不了的,只要我们知道它们丢失了。因此,这只是在需要的时候知道的信息,而不是必要的。
如何将标准错误输出仅输出到.txt
文件,如果可能但不必要,将常规输出保留到控制台?
奖励积分:
如果你能告诉我如何删除空白的文件(没有错误),将获得额外积分!此处询问:如何使用Windows批处理文件检测(和删除)为空的文件?。
试试这个:
command.exe 2>file.txt
或者,如果你不想看到任何错误,请将其发送到nul:
command.exe 2>nul
这应该会在控制台上留下std::cout。