XCOPY — встроенная команда Windows для расширенного копирования файлов и каталогов. В отличие от COPY, умеет копировать целые деревья папок, фильтровать по дате изменения, сохранять атрибуты и пропускать файлы по маске исключений. Типичный сценарий — инкрементальный бэкап или миграция данных без стороннего ПО.
- Синтаксис команды XCOPY
- Ключи и параметры
- Примеры использования
- Копирование одного файла
- Полное копирование дерева папок с пустыми каталогами
- Инкрементальный бэкап — только изменённые файлы
- Копирование скрытых и системных файлов
- Исключение файлов по маске
- Создание структуры папок без файлов
- Предварительный просмотр без копирования
- Частые ошибки и решения
- Когда применять, а когда нет
- FAQ
- В чём разница между XCOPY и Robocopy?
- Почему XCOPY не копирует пустые папки?
- Как скопировать только файлы определённого расширения?
- XCOPY пишет «0 файл(ов) скопировано» — в чём причина?
- Сохраняет ли XCOPY разрешения NTFS?
Синтаксис команды 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 (включая аудит). Без этих ключей разрешения не переносятся — файлы в назначении получают разрешения родительской папки.


