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]

Параметры

Параметр Описание
<Source> Обязательный элемент. Указывает расположение и имена файлов, которые необходимо скопировать. Этот параметр должен содержать либо диск, либо путь.
[ < Назначение > ] Указывает назначение файлов, которые необходимо скопировать. Этот параметр может включать букву диска и двоеточие, имя каталога, имя файла или их сочетание.
/W Отображает следующее сообщение и ждет ответа перед началом копирования:

файлов.
/p Запрос на подтверждение создания каждого целевого файла.
/C Игнорирует ошибки.
/v Проверяет каждый файл по мере его занесения в целевой файл, чтобы убедиться, что файлы назначения идентичны исходным файлам.
/q Подавляет отображение сообщений xcopy .
/f Отображает имена исходных и целевых файлов при копировании.
/l Отображает список копируемых файлов.
/g Создает расшифрованные файлы назначения , если назначение не поддерживает шифрование.
/d [: мм-дд-гггг] Копирует исходные файлы, измененные только в указанную дату или после нее. Если не включить значение mm-дд-гггг , команда xcopy скопирует все исходные файлы, которые новее существующих файлов назначения . Этот параметр командной строки позволяет обновлять измененные файлы.
/U Копирует файлы из источника , который существует только в месте назначения .
/i Если Source является каталогом или содержит подстановочные знаки, а назначение не существует, команда 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: имя_файла1 [+ [Имя_файла2]] [+ [FileName3] ()] Указывает список файлов. Необходимо указать хотя бы один файл. Каждый файл будет содержать строки поиска с каждой строкой в отдельной строке файла.
Если любая из строк соответствует любой части абсолютного пути к копируемому файлу, этот файл будет исключен из копирования. Например, при указании строкового obj -файла будут исключены все файлы, расположенные в каталоге obj , или все файлы с расширением obj .
/y Подавляет запрос на подтверждение перезаписи существующего целевого файла.
/-и Запрос на подтверждение перезаписи существующего целевого файла.
/z Выполняет копирование по сети в перезапускаемом режиме.
/b Копирует символьную ссылку вместо файлов. этот параметр появился в Windows Vista®.
/j Копирует файлы без буферизации. Рекомендуется для очень больших файлов. этот параметр был добавлен в Windows Server 2008 R2.
/? Отображение справки в командной строке.

Комментарии

  • Использование /z

    Если вы потеряли подключение на этапе копирования (например, если сервер переходит в режим «вне сети»), то после повторного подключения Подключение возобновится. /z также отображает процент выполнения операции копирования для каждого файла.

  • Использование /y в переменной среды копикмд.

    В переменной среды КОПИКМД можно использовать параметр /y . Эту команду можно переопределить с помощью /-и в командной строке. По умолчанию выводится запрос на перезапись.

  • Копирование зашифрованных файлов

    Копирование зашифрованных файлов на том, который не поддерживает EFS, приводит к ошибке. Сначала расшифровать файлы или скопировать их на том, который поддерживает EFS.

  • Добавление файлов

    Чтобы добавить файлы, укажите один файл для назначения, но несколько файлов для источника (то есть с помощью подстановочных знаков или формата file1 + file2 + файл3).

  • Значение по умолчанию для назначения

    Если опустить назначение, команда xcopy скопирует файлы в текущий каталог.

  • Указание того, является ли назначение файлом или каталогом

    Если объект Destination не содержит существующий каталог и не заканчивается обратной косой чертой (), появляется следующее сообщение:

    Does <Destination> specify a file name or directory name on the target(F = file, D = directory)?
    

Нажмите клавишу F, если хотите скопировать файл или файлы в файл. Нажмите клавишу D, если хотите скопировать файл или файлы в каталог.

Это сообщение можно отключить с помощью параметра командной строки /i , в результате чего команда xcopy предполагает, что назначение является каталогом, если источником является более одного файла или каталога.

  • Использование команды xcopy для установки атрибута архива для целевых файлов

    Команда xcopy создает файлы с установленным атрибутом Archive, независимо от того, был ли этот атрибут задан в исходном файле. Дополнительные сведения об атрибутах файлов и attribсм. в разделе Дополнительные ссылки.

  • Сравнение xcopy и diskcopy

    Если у вас есть диск, содержащий файлы в подкаталогах, и вы хотите скопировать его на диск, имеющий другой формат, используйте команду xcopy вместо команды diskcopy. Так как команда diskcopy копирует диски по дорожке, исходный и целевой диски должны иметь одинаковый формат. Команда xcopy не имеет этого требования. Используйте xcopy , если вам не нужна полная копия образа диска.

  • Коды выхода для команды xcopy

    Для обработки кодов завершения, возвращаемых xcopy, используйте параметр ERRORLEVEL в командной строке If в пакетной программе. Пример пакетной программы, обрабатывающей коды завершения с помощью If, см. в разделе Дополнительные ссылки. В следующей таблице перечислены все коды выхода и их описание.

    Код выхода Описание
    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. чтобы обновить файлы в каталоге \репортс с файлами в каталоге \равдата, которые были изменены с 29 декабря 1993 г., введите:

xcopy \rawdata \reports /d:12-29-1993

4. чтобы обновить все файлы, существующие в \репортс в предыдущем примере, независимо от даты, введите:

xcopy \rawdata \reports /u

5. чтобы получить список файлов для копирования с помощью предыдущей команды (т. е. без фактического копирования файлов), введите:

xcopy \rawdata \reports /d:12-29-1993 /l > xcopy.out

Файл xcopy. out содержит список всех копируемых файлов.

6. чтобы скопировать каталог \кустомер и все подкаталоги в каталог \\публик\аддресс на сетевом диске H:, оставьте атрибут "только для чтения" и при создании нового файла в H: введите:

xcopy \customer h:\public\address /s /e /k /p

7. чтобы выполнить предыдущую команду, убедитесь, что команда xcopy создает каталог \аддресс, если он не существует, и подавление сообщения, отображаемого при создании нового каталога, добавьте параметр командной строки /i следующим образом:

xcopy \customer h:\public\address /s /e /k /p /i

8. можно создать пакетную программу для выполнения операций xcopy и использовать пакет If для обработки кода выхода при возникновении ошибки. Например, в следующей пакетной программе для параметров источника и назначения 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

Чтобы использовать предыдущую пакетную программу для копирования всех файлов в каталоге К:\пргмкоде и его подкаталогов на диск B, введите:

copyit c:\prgmcode b:

Интерпретатор команд подставляет к:\пргмкоде для %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

В предыдущем примере это конкретное значение исходного параметра .\ток *. yml копирует те же три файла, даже если их два символа пути . \ были удалены. Однако файлы не копируются, если из исходного параметра был удален подстановочный знак «звездочка», что делает его просто .\ток.ИМЛ.

Дополнительные ссылки