Robocopy显示百分比,但不显示每个要复制的文件

时间:2015-03-31 15:40:05

标签: windows batch-file backup progress robocopy

我已经对其他代码进行逆向工程(因为我根本不了解批量编写)备份特定的子文件夹。现在,它看起来像这样:

@echo off

for /f "tokens=1* delims=" %%a in ('date /T') do set datestr=%%a
mkdir "e:\Family Sync Folder Backup\%date:/=_%"

set source= "\\jessica\Family Sync Folder"
set destination= "e:\Family Sync Folder Backup\%date:/=_%"
robocopy %source% %destination% /e

对特定子文件夹重复此代码。 我想知道是否有办法在屏幕上打印类似于"当前备份(FOLDER NAME)"后跟一个百分比但没有列出每个文件。

创建日志文件的加分点, 显示复制的每个文件。

1 个答案:

答案 0 :(得分:0)

您可以使用

robocopy %source% %destination% /e /LOG:"YourLogFile.txt"

强制robocopy写入日志,或者,同时压缩robocopy输出和日志

robocopy %source% %destination% /e >> YourLogFile.txt

现在,请注意屏幕上大部分Robocopy的输出都会被抑制,并且会一直空白闪烁直到结束,要使用第二个选项,你必须写下一个不同的方法来批量复制,这样你can(在每次迭代中)获取复制的文件/文件夹的实际数量(乘以100)并除以总金额以获得%完成并在屏幕上显示。

如果你想显示不同的进度指示,你需要文件的总量和复制的文件数量,为此你最终会使用带有dir命令的for循环,并且可能会丢失robocopy的全部功能。 或者你可以在robocopy上使用这5个选项:

robocopy %source% %destination% /mir /LOG+:Yourfile.txt /NFL /NDL /NJH /NJS /nc /ns

/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.

Ctrl + v'd from: How can I make robocopy silent in the command line except for progress?

请注意,robocopy上的每个文件都显示%进度,但每个目录不显示。