2

Я использую Windows 7. Переключатель Robocopy DCOPY:T может быть использован (я имею в виду, что нет ошибки параметра) в команде

robocopy C:\TEST F:\test /E /MIR /COPYALL /DCOPY:T

Однако временные метки папок не сохраняются, за исключением папок, в которых нет больше папок, то есть все папки, в которых есть подпапки, не сохраняют временные метки. Что здесь происходит?

Я запускал команду с повышенными привилегиями.

2 ответа2

1

Я помню, что видел проблему, которую вы описали (или что-то похожее) при использовании предыдущей версии Robocopy.exe (она также могла быть в Windows XP, а не в моей текущей Windows 7).

Такое поведение было разработано или, по крайней мере, так, как ожидалось.

Проблема вызвана тем, что файлы и папки (и временные метки) копируются по мере их обнаружения при перемещении по дереву каталогов.

Для любой конкретной папки давайте назовем ее Папка "A":

  • Сначала создается папка A (и, по-видимому, дочерние файлы, если таковые имеются), а затем метка времени устанавливается равной папке Source.
  • Если в папке A нет дочерних папок, Robocopy продолжит работу со следующей дочерней папкой папки A или вернется в родительский каталог папки A. Отметка времени для папки A остается правильно установленной.
  • Если папка A имеет дочерние папки, они затем создаются в папке A, что приведет к изменению отметки времени папки A.

В результате (если у A есть дочерние папки), в первый раз отметка времени для A будет неправильной. В следующий раз новые дочерние папки не создаются, поэтому отметка времени для A остается правильной.

Как я уже сказал, в настоящее время я использую Robocopy версии 5.1.10.1027 (XP027) в Windows 7 Home Premium x64. Когда я пытаюсь выполнить описанную вами операцию, я обнаруживаю, что все папки (пустые или нет) имеют правильные временные метки после первого прохода, поэтому второй проход не требуется. Возможно, это означает, что эта более новая версия Robocopy (XP027) ожидает, пока все дочерние файлы / папки не будут завершены в папке, прежде чем копировать метку времени для этой папки.

0

Я смог отследить это до проблемы с версией. На моей рабочей станции Windows 7 у меня есть robocopy 5.1.10.1027, который не поддерживает ключ /dcopy. На моем Windows Server 2012 версия 6.3.9600.16384, и она поддерживает /dcopy. Похоже, вам все равно придется запустить две разные команды.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .