除了进度之外,如何在命令行中使robocopy保持静默?

And*_*eek 91 backup robocopy

我正在使用robocopy来使用PowerShell脚本进行备份,这非常棒,除了我希望它只在复制时显示进度百分比而不是所有其他信息.

其他信息使命令窗口变得混乱,我清理简单,以便于查看备份的整体进度.

这可能吗?

谢谢,安德鲁

小智 167

我添加了以下2个参数: /np /nfl

因此,与来自AndyGeek's答案的5个参数一起,/njh /njs /ndl /nc /ns您得到以下内容并且它是静默的:

ROBOCOPY [source] [target] /NFL /NDL /NJH /NJS /nc /ns /np

/NFL : No File List - don't log file names.
/NDL : No Directory List - don't log directory names.
/NJH : No Job Header.
/NJS : No Job Summary.
/NP  : No Progress - don't display percentage copied.
/NS  : No Size - don't log file sizes.
/NC  : No Class - don't log file classes.
Run Code Online (Sandbox Code Playgroud)

  • 这仍然会打印一个空行,这在批处理文件中很明显. (12认同)
  • 指定`/ nfl/ndl`时不需要`/ nc/ns`. (4认同)
  • 仍然显示"100%"消息. (2认同)
  • @wqw,只需在EOL处添加> NUL,空行即为历史记录。 (2认同)
  • @ScottChu当您使用/ mt开关时,它将打印100%。我猜您将不得不决定是否要使用多线程,或者不显示%s (2认同)

And*_*eek 37

我是通过使用以下选项完成的:

/njh /njs /ndl /nc /ns
Run Code Online (Sandbox Code Playgroud)

请注意,文件名仍然显示,但这对我来说没问题.

有关robocopy的更多信息,请访问http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx

  • 如果使用`/ mir`或`/ purge`,则会出现仍记录的额外文件.无法找到解决方法. (12认同)
  • / nfl禁止文件名 (3认同)

SHe*_*dez 14

如果您不想要输出,这是最简单的方法:

robocopy src dest > nul

如果您仍然需要某些信息并且只想删除部分输出,请使用R.Koene'sanswer中的参数.

  • 我在win8.1 x64下测试`> log:nul`,有一个空的日志文件.`> nul`按预期工作. (5认同)
  • 生成的“空”“log”文件甚至不是真正的空。它只是将数据保存到资源管理器不可见的[备用流](https://blogs.technet.microsoft.com/askcore/2013/03/24/alternate-data-streams-in-ntfs/),但是磁盘上仍然存在很多内容。(您可以使用 `dir /r` 命令来检查以显示它。)@IvanYan 是正确的,`> nul` 是完全丢弃输出的正确命令。 (3认同)

Aar*_*bou 12

在PowerShell中,我喜欢使用:

robocopy src dest | Out-Null
Run Code Online (Sandbox Code Playgroud)

它避免了必须记住所有命令行开关.

  • Out-Null 应该对 robocopy 命令的执行没有影响。它只是重定向输出流。https://msdn.microsoft.com/en-us/powershell/reference/4.0/microsoft.powershell.core/out-null 您可以尝试删除 Out-Null 以查看丢弃的输出是否提供了有关正在发生的情况的任何线索。 (2认同)