Как узнать, какие файлы не были переданы при сбое копирования большого количества файлов из-за длины пути?

494
cr0

Я пытался скопировать большой объем данных с одного диска на другой диск, чтобы создать его резервную копию. Я сделал это просто с помощью CTRL + C - каталогов верхнего уровня, которые я хотел получить с одного диска, затем с помощью CTRL + P на диске для резервного копирования, все в Windows Explorer. Я позволил этому процессу работать в течение ночи, и по возвращении у меня была ошибка, что папка не могла быть передана из-за длины пути файла. Я нажимал skip каждый раз, чтобы увидеть, насколько серьезной была проблема, и было только 3 папки, которые не были перемещены по этой причине.

Проблема в том, что я не знаю, какие именно папки не были перенесены. Если бы я знал, какие каталоги не могли быть скопированы в первый раз, я мог бы обратиться к их длине пути или использовать (что я только сейчас узнал) робокопию, чтобы скопировать их. Как я могу точно знать, какие каталоги не были переданы? W

Копия, которую я скопировал, состоит из 1,5 ТБ данных со многими ветвящимися каталогами, поэтому я сомневаюсь, что смогу сделать это вручную. Есть ли журнал того, какие файлы были пропущены, или сравнительно простой способ сравнить две папки верхнего уровня и точно определить, чего не хватает?

1
Запустите robocopy с / l, и в течение нескольких секунд он сообщит вам, какие файлы отсутствуют в расположении targte. Aganju 6 лет назад 0
Спасибо @Aganju Я попробую. Если вы отправите это как ответ, я буду голосовать, и если это сработает, примите. Могли бы использовать чуть больше деталей, но, думаю, я понял. cr0 6 лет назад 0
Это работает только для файлов в родительском каталоге и ничего не делает в дочерних каталогах, которые он содержит. Будет продолжать возиться с этим, хотя, похоже, / E сделает трюк для захвата подкаталогов. cr0 6 лет назад 0

1 ответ на вопрос

1
Aganju

Вы можете использовать Robocopy, /Lчтобы получить список всех файлов, которые не равны.

Вот строка, которую я использую (забыл, что означает большинство классификаторов, но ROBOCOPY /?объясняет их). Не забудьте сохранить /L, в противном случае он начинает копировать вещи.

ROBOCOPY /E /Z /DCOPY:T /PURGE /FP "X:\...\SourceDir" "Y:\...\TargetDir" /L

Это дает мне длинный список выходных данных со сводкой в ​​конце, которая указывает на то, что десятки тысяч файлов были пропущены (поскольку они существуют как в исходном, так и в целевом), и было скопировано 3 файла dirs / 20. Тем не менее, у меня нет списка файлов, которые будут скопированы (которые не были скопированы в первый раз!) cr0 6 лет назад 0
Наверное, мне не нужен список, так как я могу использовать robocopy без параметра / L, и он на самом деле скопирует эти файлы. Но я все еще хотел бы знать, какие эти файлы должны были дважды проверить их и решить проблему чрезмерно длинных путей. cr0 6 лет назад 0
Хотя я думаю, что этот метод работал для копирования отсутствующих файлов, преодолевая ошибку длины пути, он не отвечает на мой первоначальный вопрос о том, как определить, какие файлы имеют слишком длинные пути cr0 6 лет назад 0