Xcopy
Windows / Программное обеспечение
Копирует файлы и каталоги, включая подкаталоги.
Синтаксис
xcopy источник [
результат] [
/w] [
/p] [
/c] [
/v] [
/q] [
/f] [
/l] [
/g] [
/d[
:мм-дд-гггг]] [
/u] [
/i] [
/s [
/e]] [
/t] [
/k] [
/r] [
/h] [{
/a|
/m}] [
/n] [
/o] [
/x] [
/exclude:файл1[
+[
файл2]][
+[
файл3]] [{
/y|
/-y}] [
/z]
Параметры
источник Обязательный параметр. Задает местонахождение и имена файлов для копирования. Параметр должен задавать или диск, или путь.
результатЗадает место, куда будут скопированы файлы. Параметр может включать имя диска с двоеточием, имя каталога, имя файла или их комбинацию.
/w Выводит следующее сообщение с ожиданием подтверждения начала копирования:
Нажмите любую клавишу, чтобы начать копирование файлов
/p Запрашивает подтверждение при создании каждого файла-результата.
/c Игнорирует ошибки.
/v Проверяет каждый скопированный файл на соответствие его оригиналу.
/q Отменяет вывод на экран сообщений команды
xcopy.
/f Выводит имена исходных файлов и файлов-результатов в процессе копирования.
/lОтображает список копируемых файлов.
/g Создает незашифрованные файлы-результаты.
/d[
:мм-дд-гггг] Копирует только файлы, измененные не ранее заданной даты. Если не включить значение
мм-дд-гггг, команда
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) (подразумевается наличие
/p).
/exclude:файл1[
+[
файл2]][
+[
файл3]] Определяет список файлов, содежащих строки.
/y Устраняет выдачу запроса на подтверждение перезаписи существующего конечного файла.
/-y Выдает запрос на подтверждение перезаписи существующего конечного файла.
/z Копирует по сети в режиме перезапуска.
/?Отображает справку в командной строке.
Примечания
- Использование параметра /v
- Использование параметра /excludeПострочный вывод всех строк в каждом файле. При соответсвтии выведенной строки части пути копируемого файла, он исключается из процесса копирования. Например, если указана строка «\Obj\», исключается все файлы, расположенные в каталоге «Obj». Например, если указана строка «.obj», исключается все файлы с расширением .obj.
- Использование параметра /zЕсли во время фазы копирования теряется сетевое подключение (например, если сервер переходит автономный режим, разрывая подключение), копирование возобновляется после восстановления подключения. Использование параметра /z команды вызывает также отображение доли (в процентах) завершенной операции копирования для каждого файла.
- Использование параметра /y в переменной среде COPYCMD.Можно применять параметр /y в переменной среде COPYCMD. Эта настройка может быть переопределена использованием параметра /-y в командной строке. По умолчанию если команда copy выполняется не в пакетной программе, при замене требуется подтверждение.
- Копирование зашифрованных файловПри копировании файлов на том, не поддерживающий шифрованную файловую систему (EFS), возникнет ошибка. Следует предварительно расшифровать файлы или копировать их на том, поддерживающий EFS.
- Добавление файловЧтобы объединить файлы, укажите один файл-результат, но несколько файлов-источников (с помощью подстановочных знаков или формата файл1+файл2+файл3).
- Значение по умолчанию для результатаЕсли параметр результат не задан, xcopy будет копировать файлы в текущий каталог.
- Указание в качестве результата файла или каталогаЕсли параметр результат не содержит существующий каталок или не заканчивается обратной чертой(\), выводится следующее сообщение:
Что означает destination:
имя файла или каталога
(F = файл, D = каталог)?
Нажмите F, если файл или файлы должны копироваться в файл. Нажмите D, если файл или файлы должны копироваться в каталог.
Чтобы устранить вывод этого сообщения, используйте параметр /i. В результате чего, команда xcopy предполагает, что результат является каталогом, если источник престаляет собой несколько файлов или каталогов. - Использование команды xcopy для установки атрибута «архивный» для файлов результатаКоманда xcopy создает файлы с установленным атрибутом «архивный», независимо от состояния этого атрибута у исходных файлов.
- Сравнение команд xcopy и diskcopyКоманда xcopy должна быть использована вместо diskcopy при копировании файлов и подкаталогов на диск другого формата. Так как команда diskcopyкопирует диски по дорожкам, требуется, чтобы исходный диск и диск-результат имели одинаковый формат. Для команды xcopy это требование не нужно. Обычно следует использовать команду xcopy, если только не требуется получить два диска с одинаковыми образами.
- Коды завершения программы xcopyДля анализа кодов завершения, выведенных командой xcopy, используйте параметр уровень_ошибки в командной строке if пакетных программ. В следующей таблице перечислены коды завершения с кратким описанием.
Код завершения | Описание |
---|
0 | Файлы скопированы без ошибок |
1 | Файлы для копирования не найдены |
2 | Нажата комбинация CTRL+C для остановки команды xcopy |
4 | Возникла ошибка инициализации. Недостаточно места в памяти или на диске, введено неверное имя диска или неверный синтаксис вызова команды |
5 | Диск защищен от записи |
Примеры
Чтобы копировать все файлы и подкаталоги (включая пустые подкаталоги) с диска A на диск B, введите:
xcopy a: b: /s /eЧтобы включить в операцию копирования предыдущего примера системные и скрытые файлы следует использовать параметр
/h:
xcopy a: b: /s /e /hЧтобы обновить файлы в каталоге \Reports файлами из каталога \Rawdata, измененными после 29 декабря 1993 года, введите:
xcopy \rawdata \reports /d:29-12-1993Чтобы обновить файлы предыдущего примера, уже существующие в каталоге \Reports, независимо от их даты, введите следующую команду:
xcopy \rawdata \reports /uЧтобы получить списк файлов, которые были бы скопированы в предыдущем примере, следует ввести команду:
xcopy \rawdata \reports /d:29-12-1993 /l > xcopy.outСписок файлов, которые были бы скопированы, находится в файле Xcopy.out.
Чтобы скопировать каталог \Customer и все подкаталоги \\Public\Address на сетевой диск H, сохранить у файлов атрибут «только для чтения», введите команду:
xcopy \customer h:\public\address /s /e /k /pЧтобы выдать предыдущую команду, убедиться, что команда
xcopy создает каталог \Address и устранить вывод сообщение о создании нового каталога, добавьте параметр
/i следующим образом:
xcopy \customer h:\public\address /s /e /k /p /iДля запуска программы
xcopy и анализа кодов завершения можно создать пакетный файл и использовать оператор
if для обработки кодов завершения в случае возникновения ошибок. Например, следующая пакетная программа использует замещаемые параметры для задания источника
xcopy и результата:
@echo off
rem COPYIT.BAT копирует все файлы во всех подкаталогах
rem исходного диска или каталога (%1) на другой диск
rem или в другой каталог (%2)
?? xcopy %1 %2 /s /e
??if errorlevel 4 goto lowmemory
?if errorlevel 2 goto abort
?if errorlevel 0 goto exit
??:lowmemory ?
echo Недостаточно памяти для копирования файлов,
задан недопустимый ?echo диск или ошибка в синтаксисе командной строки.
?goto exit
??
:abort ?
echo Нажата комбинация CTRL+C для остановки копирования.
?goto exit ?
?
:exit
Эта пакетная программа может быть использована для копирования всех файлов каталога C:\Prgmcode и его подкаталогов на диск B следующим образом:
copyit c:\prgmcode b:Командный интерпретатор подставляет C:\Prgmcode вместо параметра
%1 и B вместо параметра
%2, затем использует команду
xcopy с параметрами
/e и
/s. Если при выполнении
xcopy произошла ошибка, пакетная программа считывает код завершения и переходит на метку, указанную в соответствующей инструкции
IF ERRORLEVEL. В результате на экран выводится сообщение о характере ошибки и осуществляется выход из пакетной программы.
Источник: www.windowsfaq.ru/content/view/49/57/