我有多个驱动器,我想用robocopy
同步到另一个驱动器。以下结构:
E:\
- ServerFolders
-- A
-- B
F:\
- ServerFolders
-- C
-- D
这是我使用的命令:
robocopy E: G: /e /zb /np /copy:DAT /dcopy:T /r:2 /w:5 /mir /log+:"C:\Users\Administrator\Desktop\logs\backup_%date%.log" /XD "System Volume Information" "Recycler"
robocopy F: G: /e /zb /np /copy:DAT /dcopy:T /r:2 /w:5 /mir /log+:"C:\Users\Administrator\Desktop\logs\backup_%date%.log" /XD "System Volume Information" "Recycler"
正如您所看到的,我制作了两个calles并希望保留所有时间戳。如果某些内容已从E:
或F:
中删除,则该内容也应在G:
上删除。
现在的结果是,如果备份完成,则E:
的所有内容都不再可用。我认为这是因为/mir
,删除了不再存在的文件夹。我想要的是以下内容:
G:\
- ServerFolders
-- A
-- B
-- C
-- D
我需要改变什么?如果我指定子文件夹ServerFolders
,则会出现同样的问题。此外,每次添加新文件夹时都必须更改脚本。
修改
我唯一想到的就是每个文件夹都这样做:
set source1=%fromHDD1%\ServerFolders\A
set source2=%fromHDD1%\ServerFolders\B
set source3=%fromHDD2%\ServerFolders\C
set target1=%to%\ServerFolders\A
set target2=%to%\ServerFolders\B
set target3=%to%\ServerFolders\C
robocopy %source1% %target1% /e /zb /np /copy:DAT /dcopy:T /r:2 /w:5 /mir /XD "System Volume Information" "Recycler"
robocopy %source2% %target2% /e /zb /np /copy:DAT /dcopy:T /r:2 /w:5 /mir /XD "System Volume Information" "Recycler"
robocopy %source3% %target3% /e /zb /np /copy:DAT /dcopy:T /r:2 /w:5 /mir /XD "System Volume Information" "Recycler"
有没有更简单的方法?
答案 0 :(得分:1)
有没有更简单的方法?
TL; DR:没有。
Robocopy无法将两个源驱动器的内容汇总到一个目标文件夹中,并且仍然将每个子文件夹镜像回原始源驱动器。
要做到这一点,Robocopy必须在其他地方保留子文件夹到源驱动器的映射,并且它没有这样的功能。因此,您必须维护Robocopy的映射,这是您在编辑中建议的。
顺便说一句,如果Robocopy假设有这样一个功能,如果两个源驱动器上显示相同的子文件夹名称(但内容不同),您会期望它做什么? (例如,有E:\ServerFolders\X
和F:\ServerFolders\X
。)
如果您可以放宽摘要规则,那么显而易见的替代方法是在G:
上为每个源驱动器创建子文件夹。例如。使用目的地G:\ServerFolders\DriveF\A, B, ...
和G:\ServerFolders\DriveG\C, D, ...
。
如果您使用支持它们的Windows版本,则可以考虑通过创建library来展示G:\ServerFolders\DriveF
和G:\ServerFolders\DriveG
的摘要内容。或者,您可以通过为每个子目录创建和维护links目录来获得相同的效果。