Поделиться через


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.