Перейти к основному содержанию

xcopy — ошибка "Insufficient memory"

Windows Terminal cmd

Иногда при копировании с помощью xcopy вы можете натолкнуться на ошибку "Insufficient memory". Я такую ошибку увидел, когда стал разбираться с размером бэкапа сайта. Оказалось, что в какой-то момент времени бэкап сломался из-за этой ошибки.

xcopy

Несмотря на то, что текст ошибки переводится как "Недостаточно памяти", к оперативной памяти ошибка не имеет отношения. На сайте Microsoft подсказывают, что дело в слишком длинном полном пути к файлу, если он превышает 254 символа.

И действительно, в одной из копируемых директорий я обнаружил несколько файлов с очень длинными названиями.

xcopy

Один из способов избавиться от проблемы — не использовать файлы такой длины. Это чудесно, но не решает проблему. Не все файлы можно удалить или переименовать. И мы не застрахованы от появления новых файлов с большим названием. Да и с удалением таких файлов могут возникнуть проблемы:

Windows — удалить файл с длинным именем

Второй способ — вместо xcopy применить robocopy. Если вы ранее использовали дополнительные опции xcopy, то их придётся заменить на другие, которые поддерживает robocopy.

Удаляю старую команду:

xcopy %SourceDir% %FullBackupDir%

И вставляю новую:

robocopy %SourceDir% %FullBackupDir%

Вот мой новый скрипт для резервного копирования папки:

BAT скрипт для резервного копирования папки

Проверяйте бэкапы!

Теги

 

Похожие материалы

Windows 10 — вычислить хэш-сумму файла в командной строке

Вычислить хэш-сумму файла в Windows 10 можно с помощью встроенной утилиты certutil с параметром -hashfile. Команда позволяет создать и отобразить криптографический хэш файла.

Теги