Почему Robocopy всегда копирует один файл, а другой — нет?

Почему Robocopy всегда копирует один файл, а другой — нет?

Пытаюсь изучить Robocopy для базового плана резервного копирования и попробовал это в bat-файле:

@echo off
echo "Hello World!"
robocopy C:\Testfolder Z:\Testfolder
pause

где Z: — сетевой диск (внешний USB-накопитель, подключенный к USB-порту маршрутизатора)

В папке C:\Testfolder всего два файла — 02.jpg и 02-03.jpg.

При первом запуске был создан Testfolder на Z: и скопированы оба изображения.

Любопытно, что произойдет, я запустил его снова - на этот раз сообщения на экране говорят, что он скопировал 02.jpg, но пропустил 02-03.jpg. То же самое и при повторном запуске.

Почему это так?

решение1

По умолчанию robocopy копирует только те файлы, которые, по его мнению, были изменены с момента последнего запуска. Вы можете убедиться в этом, посмотрев статус в конце копирования. Должно быть указано, что Files Skiped равно 1. Возможно, вам придется включить эту /vопцию, чтобы получить более подробную информацию.

Поскольку вы копируете на сетевой диск, подключенный к вашему маршрутизатору, есть большая вероятность, что есть ошибка времени файла, и это заставляет robocopy видеть другую дату и время на одном из файлов назначения. Проблемы с атрибутами файлов распространены в общих папках samba на базе Linux, например, что, скорее всего, используется вашим маршрутизатором. Это объясняет, почему он продолжает повторно копировать один файл, если он не изменился. Вы можете попробовать параметр, /timfixчтобы посмотреть, исправит ли он время в файлах и прекратит ли повторно копировать неизмененные файлы.

Если вы хотите, чтобы robocopy копировал одинаковые и неизмененные файлы, добавьте эту /isопцию.

Более подробная информация здесь:https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy

Связанный контент