如何使robocopy在命令行中保持静音(进度除外)?


105

我正在使用robocopy通过PowerShell脚本进行备份,它非常棒,除了我希望它仅显示复制时的进度百分比,而不显示所有其他信息。

其他信息使命令窗口杂乱无章,我将其清理干净且很简单,以便轻松查看备份的总体进度。

这可能吗?

谢谢,安德鲁

Answers:


192

我添加了以下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.

2
仍然显示“ 100%”消息。
斯科特·朱

13
这仍然会打印一个空行,这在批处理文件中很明显。
2014年

7
/nc /ns/nfl /ndl指定时不需要。
Vojtěch多纳尔

3
@wqw,只需在EOL处添加> NUL,空行即为历史记录。
赫尔

2
@ScottChu当您使用/ mt开关时,它将打印100%。我猜您将不得不决定是否要显示多线程,或者是否不显示%s
Loaf

40

我通过使用以下选项来做到这一点:

/njh /njs /ndl /nc /ns

请注意,文件名仍然显示,但是对我来说很好。

有关robocopy的详细信息,请访问http://technet.microsoft.com/zh-cn/library/cc733145%28WS.10%29.aspx


3
/ nfl取消显示文件名
xagyg

12
如果你使用出现/mir/purge多余的文件仍然记录。无法找到一种方法将其关闭。
bbodenmiller 2014年

1
请注意,使用robocopy时,进度条仅是每个文件的%,不会显示进度,而复制的字节总数占总数的百分比。
barlop

非常有趣的@bbodenmiller欣赏...非常烦人的记录这些文件...
toscanelli

18

如果根本不需要输出,这是最简单的方法:

robocopy src dest > nul

如果您仍然需要一些信息,而只想剥离输出的一部分,请使用R.Koene's答案中的参数。


5
> log:nul在win8.1 x64下测试,有一个空的日志文件。> nul如预期般运作。
伊万·严

1
log生成的“空” 文件甚至不是真正的空。它只是将数据保存到资源管理器不可见的备用流中,但磁盘上仍然有很多。(您可以使用dir /r命令进行显示来检查它。)@IvanYan是正确的,> nul是完全丢弃输出的正确命令。
jmbpiano

16

在PowerShell中,我喜欢使用:

robocopy src dest | Out-Null

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


这样做时,它会立即终止命令,而不会发出警告。我正在使用/PURGE
Sawtaytoes

Out-Null对robocopy命令的执行没有影响。它只是重定向输出流。msdn.microsoft.com/zh-cn/powershell/reference/4.0/…您可以尝试删除Out-Null,以查看丢弃的输出是否提供了正在发生的任何线索。
亚伦·特里布

2

一种解决方法是,将输出重定向到文件(以后可以选择删除),如果您希望它绝对保持沉默。

Robocopy src dest > output.log
del output.log

6
也> NUL只是将输出切掉,没有文件可担心。
Sellorio

1
或通过管道Out-Null在PowerShell中运行
orad 2015年

2

即使没有任何作用,robocopy也倾向于打印空白行。我正在使用这样的命令过滤掉空行:

robocopy /NDL /NJH /NJS /NP /NS /NC %fromDir% %toDir% %filenames% | findstr /r /v "^$"

0

> null在引号中不起作用。它会将> null视为批处理文件名。

robocopy没有任何输出!!!

这是新的批处理文件:

robocopy /mir /B /r:1 /nfl /ndl /njh /njs /nc /ns /np c:\EnvBackup c:\offsite_backup\EnvBackup

robocopy /mir /B /r:1 /nfl /ndl /njh /njs /nc /ns /np c:\shares c:\offsite_backup\shares

robocopy /mir /B /r:1 /nfl /ndl /njh /njs /nc /ns /np c:\Quickbooks_Backup c:\offsite_backup\Quickbooks_Backup

-1

无需重定向到文件并在以后删除它。尝试:

Robocopy src dest > null 

2
这将创建一个文件null并将日志写入其中。它在命令行中将其静音,但会消耗存储驱动器写操作的费用。
Sawtaytoes
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.