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

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 скрипт для резервного копирования папки

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

Теги

 

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

BAT скрипт для резервного копирования MySQL в Облако Mail.Ru

Накидал маленький BAT скрипт для резервного копирование MySQL баз в Облако Mail.Ru по протоколу WebDAV. Внесите свои данные и через scheduler настройте расписание резервного копирования.

Windows — определить каким процессом занят порт

Определяем каким процессом занят порт. Делать это будем на Windows Server 2012 R2, но инструкция подходит и для других версий Windows. Для начала определим PID процесса

Теги