我想尝试使用 RoboCopy 将文件夹的内容镜像到另一个硬盘上。看起来效果不错。但出于某种原因,要查看目标文件夹,我必须同时启用显示隐藏的文件、文件夹和驱动器并禁用隐藏受保护的操作系统文件。为什么会这样?源文件夹和目标文件夹最初都是可见的普通目录。当我打开该目标文件夹的属性时,隐属性甚至被禁用。这是怎么回事?
是因为我在管理员命令提示符中运行它吗?还是我选择的修饰符有问题?还是 robocopy 真的就是这样工作的?
robocopy E: I:\E /COPYALL /E /R:0 /MIR /B /ETA
更新:尝试将另一个驱动器复制到另一个文件夹,结果发生了同样的事情。但是当我尝试将文件夹复制到另一个文件夹时,目标文件夹保持正常。可能是因为我复制了一个驱动器?如果是这样,我该如何防止这种情况发生?因为我确实想复制整个驱动器...
答案1
在我的系统(Vista)上,powershell 显示 c:\ 驱动器同时设置了隐藏属性和系统属性。
PS C:\Users\michael.DOMAIN> Get-Item c:\
Directory:
Mode LastWriteTime Length Name
---- ------------- ------ ----
d--hs 8/18/2009 12:19 PM <DIR> C:\
复制文件后,您可以使用 attrib 来修复它们。查看 attrib /? 了解详细信息。
答案2
它与从磁盘根目录复制隐藏/系统系统卷信息有关 - 如果复制,目标目录将获得相同的属性系统/隐藏。
复制之前创建目录没有帮助,因为 robocopy 也会隐藏它。
添加/A-:SH
忽略系统文件的开关。
更多信息请参见此处Microsoft Technet 讨论。
答案3
我也遇到过这个问题。似乎当源目录是驱动器的根目录时,就会出现这个隐藏文件夹,例如。 D:\
或F:\
。这些文件夹将包含系统和隐藏属性,并且作为源根文件夹,无法通过命令删除它attrib -s -h
。
在这个例子中,F:\
源G:\
就是目的地。
您可以在 PowerShell 中查看属性。您将看到d--hs
目录、隐藏和系统的模式。尝试以下get-item
命令C:\> Get-Item F:\
如果文件夹存在,Robocopy 应该不会将其创建为隐藏文件夹。我读过几篇文章,说使用/CREATE
就可以解决问题,或者您可以提前手动创建文件夹。我必须做进一步的测试以及其他组合才能完全验证这一点。
否则,您可以attrib -h -s G:\Destination_Folder
在复制后执行删除系统和隐藏属性。
答案4
如果您不介意attrib
事后运行,请使用 M Aguilar 的解决方案。另一个解决方案是预先创建目标目录:
mkdir I:\E
robocopy E: I:\E /COPYALL /E /R:0 /MIR /B /ETA