在使用Robocopy后,复制的目录和文件在目标驱动器上不可见。

30

我一直很喜欢使用Robocopy将电脑备份到外部USB驱动器上。它非常方便,因为它只会复制那些被更改/更新/新建的文件。我可以将外部硬盘驱动器带到任何机器上,并像计算机上的另一个驱动器一样查看它。

我最近购买了一个750G和另一个1TB的外部硬盘驱动器。我在周末运行了一个Robocopy命令,将大约500G的数据复制到了我的外部硬盘驱动器上。复制完成后,我的计算机显示外部驱动器已经使用了~500G的空间。奇怪的是,当我在Windows资源管理器中点击驱动器时,右侧窗格中什么都没有显示出来(左侧窗格中的加号也消失了)。但是,如果我将单个文件拖放到该驱动器上,它就能在Windows资源管理器中显示。在命令提示符下也是如此,只有一个文件。

我知道这些文件已经在驱动器上了,因为可用空间已经减少了。

我读到应该确保简单文件共享关闭,而它已经关闭了。我还以管理员身份拥有了这些文件。但是仍然没用。在我的Windows XP机器和Windows 7 Ultimate机器上都是一样的。

有其他人遇到过这个问题吗?或者更好的是,有人知道我做错了什么或者如何解决这个问题吗?

谢谢! Bill44077


那是一些奇怪的robocopy行为...有没有为分配系统属性提供任何正当理由?此外,在Win 8、8.1和10中是否已经纠正了这个问题? - Viral Jain
1
我在Windows 10上遇到了这个问题。我执行了命令robocopy "D:" "H:\Backup" /MIR,其中H:\Backup目录在运行命令之前不存在,而robocopy创建了一个不可见的系统目录。我没有看到可以更改此行为的命令行选项,因此我想最好在运行robocopy之前手动创建根目标目录。 - Mark McClelland
你具体是如何使用robocopy的?你的命令是什么? - Shayan
1
@MarkMcClelland 我在Win10中遇到了同样的问题,但在我的情况下,在运行Robocopy之前我已经在资源管理器中创建了根目标目录。所以我不认为这是一个解决方案 :-( - Jimadine
你是对的,@Jimadine。正如SherylHohman在下面的回答中所解释的那样,更有可能隐藏属性是从源目录复制并应用到目标目录的。 - Mark McClelland
5个回答

44

在我的情况下,上述方法不起作用。

相反,以下方法有效:attrib -h -s -a [驱动器:][路径]

例如:attrib -h -s -a "C:\My hidden folder"


对我来说没有起作用 - undefined

37

当从驱动器的根目录复制到不同驱动器上的文件夹(非根目录)时,可能会出现以下情况。
RoboCopy可能会将新目录设置为隐藏,因为它将驱动器根文件夹的系统属性复制到了新文件夹中。

您可以通过在robocopy命令中添加/A-:SH选项来防止新目录变为隐藏状态。
有关更多信息,请参见Server Fault Answer中对 “为什么RoboCopy会创建一个隐藏的系统文件夹?”的说明。
但是,根据Microsoft论坛上的此讨论 "ROBOCOPY hides destination Directory" ,这可能无法防止复制其他文件夹中的系统属性。

以下是我在超级用户上回答"如何在Windows中复制文件时保留文件属性?"问题时提供的更详细的示例:
Robocopy D:\ C:\D_backup /A-:SH /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR

但是,如果您已经使用没有/A-:SH选项的方式复制了目录,则运行上面的Ricky提到的命令(attrib -h -s -a [ Drive : ][ Path ])可以通过取消隐藏目录来解决该问题。尽管如此,我发现不需要使用-a
因此,在我的情况下,对于上面的示例,attrib -h -s C:\D_backup(不带-a选项)使D_backup可见。


8

我自己也遇到了这个问题,所以可能有点晚回复,你可能已经解决了,但是对于那些在这个页面上遇到困难的人,这是我的解决方案...

问题在于,由于某种原因,Robocopy将该目录标记为带有“隐藏”的系统属性,在目录结构中不可见,除非您启用了系统文件的查看。

最简单的解决方法是通过命令行来实现。

  • 打开命令提示符并将焦点更改为所讨论的驱动器(例如x:)
  • 然后使用命令dir /A:S显示所有设置了System属性的目录。
  • 找到您的目录名称,然后输入命令ATTRIB -R -S x:\MyBackup /S /D,其中x:\是驱动器号,MyBackup是您的目录名称。
    /S重新递归子文件夹,/D也处理文件夹。

这应该清除所有目录和文件上的“只读”和“系统”属性,使您可以正常查看目录。


5
这个英文句子的意思是“在西班牙语中,这样做会得到El archivo oculto no se restablece: <folder>(意为隐藏文件未被恢复)的提示”。而Ricky提供的答案则有效。 - lucasvc

0
除了SherylHohman和Ricky提供的出色答案外,我想补充一点,仅仅添加/A-:SH开关并不能使robocopy工作,并且复制会在目标驱动器上创建一个隐藏的系统文件夹。 然而,使用/A-:SHA参数确实可以让我的顶级目录不被赋予系统或隐藏属性。奇怪的是,我的驱动器没有设置“a”(已归档)属性,因此我很疑惑为什么这样也能起作用。尽管Ricky建议完成robocopy命令后仅删除根目标文件夹的这些属性,以便这些属性可以被遵守任何子目录,但我更喜欢简单地移除这些属性。虽然/A-开关更容易管理,而且(对于我的备份目的)与我正在备份的任何目录都无关。但是如果你正在备份C:\驱动器,则可能希望考虑不要删除系统或隐藏属性。

-1

你可以尝试这个方法,但我要说“可以”的前提是整个Windows 10系统都存在很多问题。我已经对Windows 10和微软失去了信任。

不过,当我使用robocopy将整个“文档”文件夹复制到外部驱动器的根目录后,我得到的文件夹不叫做“文档”,而是被重命名并翻译成我的本地语言,可能是某种语言设置问题。(选项/XD告诉robocopy跳过某个文件夹)

C:\users\asdf\documents >robocopy . f:\ManuBackup /XD c:\Users\Asdf\Documents\OneDrive /s

文件浏览器显示Tiedostot名称(即芬兰语中的“文档”),命令提示符显示ManuBackup名称。我已经尝试了所有attrib.exe命令到ManuBackup文件夹,但不敢百分之百确定。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接