Robocopy не копирует файлы

Рассмотрим следующий сценарий :
  • Вы используете Robocopy под Windows 7 or Windows Server 2008 R2.
  • В именах файлов есть символы Восточной Азии, например Японские символы.

В этом случае некоторые файлы могут не скопироваться и Robocopy даже не выведет ошибку.

К примеру : Вы сохраняете 2 файла в директорию на компьютере где запущен Windows Server 2008 R2 или Windows 7.

  • ー.txt (символ "chouon")
  • ―.txt (символ "em dash")

Вы пытаетесь скопировать оба эти файла с помощью Robocopy. Будет скопирован только 1 файл.

Эта проблема возникает из-за того, что утилита Robocopy.exe использует функцию сравнения строк, которая работает некорректо, когда вы копируете файлы.

Для решения проблемы можно скачать hotfix с Microsoft. Данный hotfix только для решений этой проблемы.

Используйте его в том случае если у вас одна из этих версий Windows :

  • Windows 7
  • Windows 7 Service Pack 1 (SP1)
  • Windows Server 2008 R2
  • Windows Server 2008 R2 Service Pack 1 (SP1)

Перезагрузка компьютера не потребуется.

Второй возможный сценарий

Иногда может показаться что Robocopy скопировал не все файлы. Когда проверяешь количество файлов с помощью Explorer и сравниваешь в исходной папке и папке назначения.

Но дело тут вот в чём. Некоторые версии Explorer не умеют считать файлы и папки с именами длиннее 260 символов. И на самом деле Robocopy скопировал все файлы.