我有一个使用 Robocopy 来备份我的文件的备份批处理文件(请注意,此示例包含您应该删除的换行符):
robocopy "C:\" "G:\Default\RoboCopyBackup\C" /XF Pagefile.sys /XD
"System Volume Information" "Recycler" "Temporary Internet Files"
"Installer Cache" "Temp" /E /R:1 /W:0 /TEE /XJ
这应该在外部备份驱动器上创建一个文件夹结构,如下所示:
G:\Default\RoboCopyBackup\C\...
然而,G:
看上去却是空的。
奇怪的是,文件夹和文件是就在那里!如果我在地址栏中输入上述路径,我就会看到所有文件和文件夹!
有人能帮我理解原因吗?我认为这可能是一些基于 NTFS 的所有权/权限问题,但我不确定。
答案1
我从来没有得到过这个问题的满意答案,但它似乎是复制驱动器的根目录(在你的情况下C:\
)和/COPYALL标志的组合。
RoboCopy 似乎在复制整个源驱动器时将系统和隐藏属性应用于目标文件夹。到目前为止,我找到了两种解决方法...
1)ATTRIB
在运行robocopy后运行。在你的情况下:
attrib -s -h "G:\Default\RoboCopyBackup\C"
2) 更改/COPYALL
为/COPY:DTSOU
(不包括A
复制属性)。在您的案例中,我没有看到列出的 copyall 标志,但我在有关此问题的帖子中经常看到它。删除属性可能不是您案例中的实用解决方案,因此您的里程可能会有所不同。
HTH,-埃里克
答案2
Robocopy 将根据您正在复制的源文件夹的属性为您创建文件夹路径。复制整个驱动器将导致文件夹被隐藏并标记为“系统文件夹”。
您可以通过取消选中 Windows 资源管理器文件夹选项窗口的视图选项卡上的“隐藏受保护的操作系统文件(推荐)”来使该文件夹可见。
答案3
上周末我遇到了这种情况,我确定这是由于 robocopy 无法复制所有内容造成的,在我的例子中,它失败是因为一些天才让服务器在我的计划维护窗口中间执行自动更新。在我重新启动 robocopy 并让其完成后,目录就正常显示了。
编辑:
再想想,当我尝试从驱动器根目录复制文件夹结构时出现了类似的问题,并且复制系统卷信息时失败了。
答案4
我正在使用 Windows 7,定义这个参数为我解决了这个问题:)
/复制:DTO