Инструмент командной строки Robocopy (поставляется с большинством версий Windows)
На моем компьютере с Windows 10 он находится в C:\Windows\System32
Из Википедии его можно использовать со следующим набором параметров для сохранения временных меток файлов и каталогов, а также других атрибутов:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPYALL /E /R:0
/DCOPY:T
сохранить временные метки оригинальных каталогов (требуется версия XP026 или новее)
/E
: рекурсивно копировать каталоги, включая пустые каталоги
/R:0
: не повторять попытки заблокированных файлов (по умолчанию количество повторных попыток при сбойных копиях равно 1 миллиону),
/COPYALL
: копировать всю информацию о файле,
(эквивалентно /COPY:DATSOU
, где
D
= данные,
A
= атрибуты,
T
= метки времени файла ,
S
= Безопасность = NTFS ACL,
O
= Информация о владельце,
U
= информация аудита),
Если вы хотите сохранить только метки даты и времени каталога, но не хотите копировать пустые подкаталоги и не хотите сохранять другие атрибуты, вы можете использовать:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPY:T /S
где /S
копирует непустые подкаталоги
Чтобы увидеть полный синтаксис, введите robocopy /?
в командной строке или посмотрите на эти сообщения в блоге: https://ss64.com/nt/robocopy.html и https://techjourney.net/robocopy-syntax-command-line-switches-and-examples/
Пример команды, которую я недавно выполнил:
Robocopy D:\ C:\D_backup /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
Обратите внимание, что исключение 2 подкаталогов требует, чтобы флаг /XD
использовался дважды. Кроме того, второе исключение каталога использует кавычки, потому что в имени каталога есть пробелы.
Наконец, вы можете добавить флаг /L
чтобы проверить команду, прежде чем делать это по-настоящему. Таким образом, вы можете убедиться, что он не будет копировать (или удалять) любые каталоги / файлы, которые вам не нужны, и что в вашей команде нет ошибок.
Редактировать: поймал при копировании из корневого каталога (он же диск) в папку (не корневой каталог)
После запуска приведенной выше команды, каталог не был виден! (Несмотря на то, что show hidden files
и show system files
были проверены в Windows 10!)
Следующая команда согласно https://serverfault.com/a/455029/399723 исправила это:
attrib -h -s C:\D_backup
В качестве альтернативы, добавление /A-:SH
"удаляет скрытый атрибут из системных файлов", что, в свою очередь, может помешать скрытию каталога, в соответствии с https://serverfault.com/a/565804/399723. Смотрите также https://ss64.com/nt/robocopy.html.
Это обсуждение проливает больше света на этот вариант в качестве решения.
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
Другое программное обеспечение:
Кроме того, вы можете загрузить версию robocopy с графическим интерфейсом, если вы не хотите использовать командную строку.
Другая утилита для Windows - это XCopy, хотя она включена в Windows 10, но она устарела. Смотрите ссылку для получения.
На странице Википедии для RoboCopy (ссылка вверху этого поста) перечислены другие программы, которые можно использовать.