xcopy
Копирует файлы и каталоги, включая вложенные каталоги.
В разделе Примеры показан принцип использования этой команды.
Синтаксис
xcopy <Source> [<Destination>] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d [:MM-DD-YYYY]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a | /m}] [/n] [/o] [/x] [/exclude:FileName1[+[FileName2]][+[FileName3]]] [{/y | /-y}] [/z] [/b] [/j] [/compress]
Параметры
Параметр | Описание |
---|---|
<Источник> | Обязательный. Указывает расположение и имена файлов, которые требуется скопировать. Этот параметр должен включать диск или путь. |
[<Назначение>] | Указывает назначение файлов, которые требуется скопировать. Этот параметр может включать букву диска и двоеточие, имя каталога, имя файла или комбинацию из них. |
/w | Отображает следующее сообщение и ожидает ответа перед началом копирования файлов: Нажмите любой ключ, чтобы начать копирование файлов. |
/p | Запрашивает подтверждение того, нужно ли создать каждый целевой файл. |
/c | Игнорирует ошибки. |
/v | Проверяет каждый файл так же, как он записывается в целевой файл, чтобы убедиться, что целевые файлы идентичны исходным файлам. |
/q | Подавляет отображение xcopy сообщений. |
/f | Отображает имена исходных и целевых файлов во время копирования. |
/l | Создает список файлов, которые копируются, но не копируются. |
/Г | Создает расшифрованные файлы назначения , если назначение не поддерживает шифрование. |
/d [:MM-DD-ГГГГ] | Копирует исходные файлы, измененные только по указанной дате или после нее. Если вы не включаете значение MM-DD-YYYY, xcopy копирует все исходные файлы, которые являются более новыми, чем существующие целевые файлы. Этот параметр командной строки позволяет обновлять измененные файлы. |
/u | Копирует файлы из источника , существующего только в месте назначения . |
/i | Если источник является каталогом или содержит дикие элементы карта и назначения не существует, предполагается, xcopy что назначение указывает имя каталога и создает новый каталог. xcopy Затем копирует все указанные файлы в новый каталог. По умолчанию xcopy предлагается указать, является ли назначение файлом или каталогом. |
/s | Копирует каталоги и вложенные каталоги, если они не пусты. Если вы опустите /s, xcopy работает в одном каталоге. |
/e | Копирует все вложенные каталоги, даже если они пусты. Используйте /e с параметрами командной строки /s и /t . |
/T | Копирует структуру подкаталога (т. е. дерево) только, а не файлы. Чтобы скопировать пустые каталоги, необходимо включить параметр командной строки /e . |
/K | Копирует файлы и сохраняет атрибут только для чтения в целевых файлах, если они присутствуют в исходных файлах. По умолчанию xcopy удаляет атрибут только для чтения. |
/r | Копирует файлы только для чтения. |
/h | Копирует файлы со скрытыми и системными атрибутами файлов. По умолчанию xcopy не копирует скрытые или системные файлы |
/a | Копирует только исходные файлы с набором атрибутов архивных файлов. /a не изменяет атрибут архивного файла исходного файла. Сведения о настройке атрибута архивного файла с помощью attrib см. в разделе "Связанные ссылки". |
/m | Копирует исходные файлы с набором атрибутов архивного файла. В отличие от /a, /m отключает атрибуты архивного файла в файлах, указанных в источнике. Сведения о настройке атрибута архивного файла с помощью attrib см. в разделе "Связанные ссылки". |
/N | Создает копии с помощью коротких файлов NTFS или имен каталогов. /n требуется при копировании файлов или каталогов из тома NTFS в том FAT или при необходимости соглашения об именовании файловой системы FAT (то есть 8.3 символов) в целевой файловой системе. Целевая файловая система может быть FAT или NTFS. |
/o | Копирует сведения о владении файлами и списке управления доступом (DACL). |
/x | Копирует параметры аудита файлов и сведения о списке управления доступом системы (SACL) (подразумевает /o). |
/exclude:FileName1[+[FileName2][+[FileName3]( )] | Указывает список файлов. Необходимо указать по крайней мере один файл. Каждый файл содержит строки поиска с каждой строкой в отдельной строке в файле. Если любая из строк соответствует любой части абсолютного пути к копируемым файлам, этот файл исключается из копирования. Например, при указании строки obj будут исключены все файлы под каталогом obj или все файлы с расширением .obj . |
/Y | Подавляет запрос на подтверждение того, что вы хотите перезаписать существующий целевой файл. |
/-Y | Запрашивает подтверждение того, что вы хотите перезаписать существующий целевой файл. |
/z | Копирует по сети в режиме перезапуска. |
/b | Копирует символьную ссылку вместо файлов. Этот параметр появился в Windows Vista®. |
/J | Копирует файлы без буферизации. Рекомендуется для очень больших файлов. Этот параметр был добавлен в Windows Server 2008 R2. |
/Сжать | Запрос сетевого сжатия во время передачи файлов, где это применимо. |
/[- ]разреженный |
Включает или отключает сохранение разреженного состояния файлов во время процесса копирования. Если указаны оба параметра, параметр /-sparse переопределяет /разреженный параметр /sparse. |
/noclone | Не пытается клонирование блоков в качестве оптимизации. |
/? | Отображение справки в командной строке. |
Замечания
Использование /z
Если вы потеряете подключение во время этапа копирования (например, если сервер будет отключен, он возобновляется после повторного завершения подключения. /z также отображает процент операции копирования, завершенной для каждого файла.
Использование /y в переменной среды COPYCMD.
Можно использовать /y в переменной среды COPYCMD. Эту команду можно переопределить с помощью /-y в командной строке. По умолчанию вам будет предложено перезаписать.
Копирование зашифрованных файлов
Копирование зашифрованных файлов в том, который не поддерживает EFS, приводит к ошибке. Расшифруйте файлы сначала или скопируйте их в том, поддерживающий EFS.
Добавление файлов
Чтобы добавить файлы, укажите один файл для назначения, но несколько файлов для источника (т. е. с помощью wild карта s или file1+file2+file3 format).
Значение по умолчанию для назначения
Если опустить назначение,
xcopy
команда копирует файлы в текущий каталог.Указание того, является ли назначение файлом или каталогом
Если назначение не содержит существующий каталог и не заканчивается обратной косой чертой (), появится следующее сообщение:
Does <Destination> specify a file name or directory name on the target(F = file, D = directory)?
Нажмите клавишу F, если нужно, чтобы файл или файлы были скопированы в файл. Нажмите клавишу D, если требуется, чтобы файл или файлы были скопированы в каталог.
Это сообщение можно отключить с помощью параметра командной строки /i , что приводит
xcopy
к тому, что назначение является каталогом, если источник имеет несколько файлов или каталогов.xcopy
Использование команды для задания атрибута архива для целевых файловКоманда
xcopy
создает файлы с набором атрибутов архива, независимо от того, был ли этот атрибут задан в исходном файле. Дополнительные сведения об атрибутах файла и атрибутах см. в статьях "Связанные ссылки".xcopy
Сравнение иdiskcopy
Если у вас есть диск, содержащий файлы в подкаталогах, и вы хотите скопировать его на диск с другим форматом, используйте
xcopy
команду вместоdiskcopy
этого.diskcopy
Так как команда копирует диски, отслеживаемые по треку, исходные и целевые диски должны иметь одинаковый формат. Этаxcopy
команда не имеет этого требования. Используйтеxcopy
, если вам не нужна полная копия образа диска.Ошибка "Недостаточно памяти"
Ошибка "недостаточно памяти" может возникать при выполнении
xcopy
копирования файла или папки, путь к имени файла которого превышает 255 символов.Коды выхода для
xcopy
Чтобы обработать коды выхода, возвращаемые
xcopy
, используйте параметр ErrorLevel в командной строке в пакетной программе. Пример пакетной программы, которая обрабатывает коды выхода, используя если, см. ссылки на связанные. В следующей таблице перечислены код выхода и описание.Код выхода Description 0 Файлы были скопированы без ошибок. 1 Никакие файлы не были найдены для копирования. 2 Пользователь нажимал клавиши CTRL+C, чтобы завершить работу xcopy
.4 Произошла ошибка инициализации. Недостаточно памяти или места на диске, или в командной строке введено недопустимое имя диска или недопустимый синтаксис. 5 Произошла ошибка записи диска.
Примеры
1. Копирование всех файлов и подкаталогов (включая все пустые подкаталоги) с диска A на диск B, введите:
xcopy a: b: /s /e
2. Чтобы включить любые системные или скрытые файлы в предыдущем примере, добавьте параметр командной строки /h следующим образом:
xcopy a: b: /s /e /h
3. Чтобы обновить файлы в каталоге \Reports с файлами в каталоге \Rawdata, которые изменились с 29 декабря 1993 года, введите:
xcopy \rawdata \reports /d:12-29-1993
4. Чтобы обновить все файлы, существующие в \Reports в предыдущем примере, независимо от даты, введите:
xcopy \rawdata \reports /u
5. Чтобы получить список файлов, копируемых предыдущей командой (т. е. без фактического копирования файлов), введите:
xcopy \rawdata \reports /d:12-29-1993 /l > xcopy.out
Файл xcopy.out выводит список всех файлов, которые необходимо скопировать.
6. Копирование каталога \Customer и всех подкаталогов в каталог \\Public\Address на сетевом диске H:, сохранение атрибута только для чтения и запрос при создании нового файла в H:, введите:
xcopy \customer h:\public\address /s /e /k /p
7. Чтобы выполнить предыдущую команду, убедитесь, что xcopy
создается каталог \Address, если он не существует, и отключите сообщение, которое отображается при создании нового каталога, добавьте параметр командной строки /i следующим образом:
xcopy \customer h:\public\address /s /e /k /p /i
8. Можно создать пакетную программу для выполнения xcopy
операций и использовать пакет , если команда обрабатывает код выхода при возникновении ошибки. Например, следующая пакетная программа использует заменяемые параметры для xcopy
параметров источника и назначения:
@echo off
rem COPYIT.BAT transfers all files in all subdirectories of
rem the source drive or directory (%1) to the destination
rem drive or directory (%2)
xcopy %1 %2 /s /e
if errorlevel 4 goto lowmemory
if errorlevel 2 goto abort
if errorlevel 0 goto exit
:lowmemory
echo Insufficient memory to copy files or
echo invalid drive or command-line syntax.
goto exit
:abort
echo You pressed CTRL+C to end the copy operation.
goto exit
:exit
Чтобы использовать предыдущую пакетную программу для копирования всех файлов в каталогЕ C:\Prgmcode и его подкаталогах на диск B, введите следующее:
copyit c:\prgmcode b:
Интерпретатор команд заменяет C:\Prgmcode для %1 и B: для %2, а затем используется xcopy
с параметрами командной строки /e и /s . Если xcopy
возникает ошибка, пакетная программа считывает код выхода и переходит к метке, указанной в соответствующей инструкции IF ERRORLEVEL , затем отображает соответствующее сообщение и выходит из пакетной программы.
9. В этом примере копируются все непустые каталоги, а также файлы с соответствующим расширением файла после символа звездочки.
xcopy .\toc*.yml ..\..\Copy-To\ /S /Y
rem Output example.
rem .\d1\toc.yml
rem .\d1\d12\toc.yml
rem .\d2\toc.yml
rem 3 File(s) copied
В предыдущем примере это конкретное значение параметра источника .\toc*.yml копирует те же 3 файла, даже если были удалены два символа пути. Однако никакие файлы не будут скопированы, если звездочка дикая карта была удалена из исходного параметра, что делает его просто .\toc.yml.