XCOPY — копирование файлов и папок с расширенными параметрами CMD

XCOPY копирует файлы и целые дерева каталогов с сохранением атрибутов, фильтрацией по дате и исключением файлов — быстрее и гибче стандартного COPY.

XCOPY — встроенная команда Windows для расширенного копирования файлов и каталогов. В отличие от COPY, умеет копировать целые деревья папок, фильтровать по дате изменения, сохранять атрибуты и пропускать файлы по маске исключений. Типичный сценарий — инкрементальный бэкап или миграция данных без стороннего ПО.

Синтаксис команды XCOPY

XCOPY источник [назначение] [ключи]

источник — путь к файлу или папке-источнику (поддерживает маски * и ?). назначение — путь к целевой папке или файлу; если не указано, копирование происходит в текущий каталог. Пути с пробелами заключайте в двойные кавычки.

Ключи и параметры

Ключ Описание Пример
/S Копировать подпапки, кроме пустых xcopy C:\Src D:\Dst /S
/E Копировать все подпапки, включая пустые xcopy C:\Src D:\Dst /E
/Y Автоматически заменять существующие файлы без запроса xcopy C:\Src D:\Dst /Y
/-Y Запрашивать подтверждение перед заменой xcopy C:\Src D:\Dst /-Y
/D[:дата] Копировать только файлы новее указанной даты или новее версии в назначении xcopy C:\Src D:\Dst /D
/H Включить скрытые и системные файлы xcopy C:\Src D:\Dst /H
/R Перезаписывать файлы, помеченные как «только для чтения» xcopy C:\Src D:\Dst /R
/K Сохранять атрибуты файлов (в т.ч. «только для чтения») xcopy C:\Src D:\Dst /K
/C Продолжать копирование даже при ошибках xcopy C:\Src D:\Dst /C
/I Считать назначение папкой, если оно не существует xcopy C:\Src D:\NewDir /I
/Q Тихий режим: не выводить имена копируемых файлов xcopy C:\Src D:\Dst /Q
/F Выводить полные пути источника и назначения при копировании xcopy C:\Src D:\Dst /F
/L Только показать список файлов для копирования (без реального копирования) xcopy C:\Src D:\Dst /S /L
/T Создать структуру папок без копирования файлов xcopy C:\Src D:\Dst /T /E
/EXCLUDE:файл Исключить файлы по маскам, перечисленным в текстовом файле xcopy C:\Src D:\Dst /EXCLUDE:exclude.txt
/O Копировать вместе с информацией о владельце и ACL xcopy C:\Src D:\Dst /O
/X Копировать аудит-настройки (включает /O) xcopy C:\Src D:\Dst /X

Примеры использования

Копирование одного файла

Базовая операция: скопировать файл в другую папку с сохранением имени.

xcopy "C:\Работа\отчёт.xlsx" "D:\Архив\" /Y

Косая черта в конце пути назначения указывает XCOPY, что это папка, а не файл. /Y подавляет запрос на замену.

Полное копирование дерева папок с пустыми каталогами

Переносит всю структуру папок, сохраняя пустые директории — нужно при миграции проектов.

xcopy "C:\Projects\WebApp" "D:\Backup\WebApp" /E /I /K /Y

/E — включая пустые папки, /I — назначение создать как папку, /K — сохранить атрибуты файлов.

Инкрементальный бэкап — только изменённые файлы

Копирует только файлы, изменённые после последнего запуска. Экономит время и трафик при регулярных резервных копиях.

xcopy "C:\Data" "\\SERVER\Backup\Data" /D /S /C /Y /Q

/D — только новее или изменённые, /C — не прерывать при ошибке доступа к отдельному файлу, /Q — тихий режим.

Копирование скрытых и системных файлов

По умолчанию XCOPY пропускает скрытые и системные файлы. Флаг /H включает их.

xcopy "C:\System32\drivers" "D:\DriverBackup" /H /S /C /Y

Требует запуска CMD от имени администратора для доступа к защищённым файлам.

Исключение файлов по маске

Исключение временных файлов и папок .git при создании чистой копии проекта.

xcopy "C:\DevProject" "D:\Release" /S /E /Y /EXCLUDE:exclude.txt

Файл exclude.txt содержит маски исключений, по одной на строку:

.git
*.tmp
*.log
Thumbs.db

Создание структуры папок без файлов

Создаёт зеркальное дерево каталогов в новом месте — удобно для подготовки шаблона структуры.

xcopy "C:\Projects" "D:\Templates" /T /E

Файлы не копируются, только структура папок включая пустые директории.

Предварительный просмотр без копирования

Позволяет убедиться, что будет скопировано, перед запуском реальной операции.

xcopy "C:\Data" "D:\Backup" /S /D /L

Флаг /L выводит список файлов, которые будут скопированы, но не выполняет реального копирования.

Частые ошибки и решения

Ошибка / симптом Причина Решение
«Файл не найден — 0 файл(ов) скопировано» Неверный путь к источнику или маска не совпадает ни с одним файлом Проверьте путь через dir; добавьте /S для поиска в подпапках
«Недостаточно прав» на системные папки CMD запущена без прав администратора Откройте CMD через «Запуск от имени администратора»
XCOPY спрашивает «Файл или каталог?» (F/D) Назначение не существует, XCOPY не понимает — файл это или папка Добавьте ключ /I (считать папкой) или завершите путь назначения обратной косой чертой \
Скрытые файлы не копируются По умолчанию XCOPY игнорирует скрытые и системные файлы Добавьте ключ /H
Файлы «только для чтения» в назначении не перезаписываются Отсутствует ключ /R Добавьте /R для перезаписи файлов с атрибутом «только для чтения»
Копирование прерывается при ошибке доступа к одному файлу По умолчанию XCOPY останавливается при первой ошибке Добавьте /C — продолжать при ошибках

Когда применять, а когда нет

XCOPY подходит для автоматизированного резервного копирования, миграции файлов и создания структур папок в скриптах CMD. Не подходит для копирования с открытых/заблокированных файлов (баз данных, журналов) — для этого нужен Volume Shadow Copy. Для сложных сценариев синхронизации предпочтительнее Robocopy: он поддерживает возобновление прерванных операций, многопоточность и более гибкое ведение журнала. Аналог в PowerShell: Copy-Item -Recurse -Force. XCOPY доступна во всех версиях Windows и не требует прав администратора для работы с файлами пользователя.

FAQ

В чём разница между XCOPY и Robocopy?

Robocopy более мощная и современная утилита: поддерживает возобновление прерванных копирований, многопоточность (/MT), зеркальную синхронизацию (/MIR) и детальное логирование. XCOPY проще, присутствует во всех версиях Windows и достаточна для большинства скриптов.

Почему XCOPY не копирует пустые папки?

По умолчанию используется режим без /E, который пропускает пустые директории. Добавьте /E вместо /S, чтобы копировать структуру папок полностью, включая пустые.

Как скопировать только файлы определённого расширения?

Укажите маску в источнике: xcopy "C:\Docs\*.pdf" "D:\Backup\" /S /Y. Это скопирует все PDF из папки и подпапок.

XCOPY пишет «0 файл(ов) скопировано» — в чём причина?

Скорее всего, маска источника не совпала ни с одним файлом, или все файлы уже актуальны в назначении при использовании /D. Проверьте список файлов командой с ключом /L — она покажет, что будет скопировано, без реального копирования.

Сохраняет ли XCOPY разрешения NTFS?

Только при указании ключей /O (копировать владельца и ACL) или /X (включая аудит). Без этих ключей разрешения не переносятся — файлы в назначении получают разрешения родительской папки.

Оцените статью
( Пока оценок нет )
MW10
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.