Я подумал, что попробую RoboCopy для зеркального копирования содержимого папки на другой жесткий диск. И вроде как сработало. Но по какой-то причине, чтобы увидеть папку назначения, я должен включить Показать скрытые файлы, папки и диски и отключить Скрыть защищенные файлы операционной системы. Почему это? И исходная, и целевая папка изначально были видимыми и обычными каталогами. Когда я открываю свойства этой целевой папки, Скрытый атрибут даже отключен. Что здесь происходит?
Это потому, что я запустил его в командной строке администратора? Или это проблема с выбором модификаторов? Или робот-копирование действительно работает именно так?
robocopy E: I:\E /COPYALL /E /R:0 /MIR /B /ETA
Обновить: Пытался скопировать другой диск в другую папку, и там происходит то же самое. Но когда я пытаюсь просто скопировать папку в другую папку, папка назначения остается нормальной. Может быть, я копирую диск? Если да, то как я могу предотвратить это? Потому что я действительно хочу скопировать весь диск ...
Это связано с копированием скрытой / системной информации о системном томе из корня диска - если она копируется, целевой каталог получает те же атрибуты system / hidden.
Создание каталога перед копированием не помогает, так как robocopy также скроет его.
Добавить /A-:SH
переключить на игнорирование системных файлов.
Больше информации в этом Обсуждение Microsoft Technet.
В моей системе (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 /? для подробностей.
Я тоже столкнулся с этой проблемой. Кажется, что эта скрытая папка появляется, когда исходный каталог является корнем диска, например. D:\
или F:\
. Эти папки будут содержать системные и скрытые атрибуты, и, будучи исходной корневой папкой, не могут быть удалены attrib -s -h
команда.
В этом примере F:\
это источник G:\
это пункт назначения.
Вы можете увидеть атрибуты в PowerShell. Вы увидите режим d--hs
для каталога, скрытого и системного. Попробуйте get-item
команда C:\> Get-Item F:\
Предполагается, что Robocopy не будет создавать его как скрытую папку, если папка существует. Я читал несколько сообщений, в которых /CREATE
сделает свое дело, или вы можете заранее создать папки вручную. Мне нужно провести дальнейшее тестирование, а также другие комбинации, чтобы полностью это проверить.
В противном случае вы можете сделать attrib -h -s G:\Destination_Folder
для удаления системного и скрытого атрибутов после копирования.
Используйте раствор M Aguilar, если вы не против бегать attrib
потом. Другое решение - просто заранее создать целевой каталог:
mkdir I:\E
robocopy E: I:\E /COPYALL /E /R:0 /MIR /B /ETA