В чем заключается принципиальное отличие между командами xcopy и diskcopy при копировании файлов
Xcopy
Примечания
- Использование параметра /v
- Использование параметра /exclude
Построчный вывод всех строк в каждом файле. При соответсвтии выведенной строки части пути копируемого файла, он исключается из процесса копирования. Например, если указана строка «\Obj\», исключается все файлы, расположенные в каталоге «Obj». Например, если указана строка «.obj», исключается все файлы с расширением .obj.
Если во время фазы копирования теряется сетевое подключение (например, если сервер переходит автономный режим, разрывая подключение), копирование возобновляется после восстановления подключения. Использование параметра /z команды вызывает также отображение доли (в процентах) завершенной операции копирования для каждого файла.
Можно применять параметр /y в переменной среде COPYCMD. Эта настройка может быть переопределена использованием параметра /-y в командной строке. По умолчанию если команда copy выполняется не в пакетной программе, при замене требуется подтверждение.
При копировании файлов на том, не поддерживающий шифрованную файловую систему (EFS), возникнет ошибка. Следует предварительно расшифровать файлы или копировать их на том, поддерживающий EFS.
Чтобы объединить файлы, укажите один файл-результат, но несколько файлов-источников (с помощью подстановочных знаков или формата файл1+файл2+файл3).
Если параметр результат не задан, xcopy будет копировать файлы в текущий каталог.
Что означает destination:
имя файла или каталога
(F = файл, D = каталог)?
Нажмите F, если файл или файлы должны копироваться в файл. Нажмите D, если файл или файлы должны копироваться в каталог.
Команда xcopy создает файлы с установленным атрибутом «архивный», независимо от состояния этого атрибута у исходных файлов. Получение дополнительных сведений об атрибутах файлов команды attrib
Команда xcopy должна быть использована вместо diskcopy при копировании файлов и подкаталогов на диск другого формата. Так как команда diskcopy копирует диски по дорожкам, требуется, чтобы исходный диск и диск-результат имели одинаковый формат. Для команды xcopy это требование не нужно. Обычно следует использовать команду xcopy , если только не требуется получить два диска с одинаковыми образами.
Для анализа кодов завершения, выведенных командой xcopy , используйте параметр уровень_ошибки в командной строке if пакетных программ. В следующей таблице перечислены коды завершения с кратким описанием.
Примеры
Чтобы копировать все файлы и подкаталоги (включая пустые подкаталоги) с диска A на диск B, введите:
Чтобы включить в операцию копирования предыдущего примера системные и скрытые файлы следует использовать параметр /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 \customer h:\public\address /s /e /k /p /i
Для запуска программы xcopy и анализа кодов завершения можно создать пакетный файл и использовать оператор if для обработки кодов завершения в случае возникновения ошибок. Например, следующая пакетная программа использует замещаемые параметры для задания источника xcopy и результата:
@echo off
rem COPYIT.BAT копирует все файлы во всех подкаталогах
rem исходного диска или каталога (%1) на другой диск
rem или в другой каталог (%2)
??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 и его подкаталогов на диск D следующим образом:
copyit c:\prgmcode d :
1 .. 181 182 183 184 185 .. 282
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]
Параметры
Нажмите любую клавишу, чтобы начать копирование файлов
Примечания
Начиная с Windows XP эта команда не используется. Она предназначена для обеспечения совместимости с файлами MS-DOS
Построчный вывод всех строк в каждом файле. При соответствии выведенной строки части пути копируемого файла, он исключается из процесса копирования. Например, если указана строка «\Obj\», исключается все файлы, расположенные в каталоге «Obj». Например, если указана строка «.obj», исключается все файлы с расширением .obj.
Если во время фазы копирования теряется сетевое подключение (например, если сервер переходит автономный режим, разрывая подключение), копирование возобновляется после восстановления подключения. Использование параметра /z команды вызывает также отображение доли (в процентах) завершенной операции копирования для каждого файла.
Можно применять параметр /y в переменной среде COPYCMD. Эта настройка может быть переопределена использованием параметра /-y в командной строке. По умолчанию если команда copy выполняется не в пакетной программе, при замене требуется подтверждение.
При копировании файлов на том, не поддерживающий шифрованную файловую систему (EFS), возникнет ошибка. Следует предварительно расшифровать файлы или копировать их на том, поддерживающий EFS.
Чтобы объединить файлы, укажите один файл-результат, но несколько файлов-источников (с помощью подстановочных знаков или формата файл1+файл2+файл3).
Если параметр результат не задан, xcopy будет копировать файлы в текущий каталог.
Что означает destination:
имя файла или каталога
(F = файл, D = каталог)?
Нажмите F, если файл или файлы должны копироваться в файл. Нажмите D, если файл или файлы должны копироваться в каталог.
Команда xcopy создает файлы с установленным атрибутом «архивный», независимо от состояния этого атрибута у исходных файлов. Для получения дополнительных сведений об атрибутах файлов команде attrib.
Команда xcopy должна быть использована вместо diskcopy при копировании файлов и подкаталогов на диск другого формата. Так как команда diskcopy копирует диски по дорожкам, требуется, чтобы исходный диск и диск-результат имели одинаковый формат. Для команды xcopy это требование не нужно. Обычно следует использовать команду xcopy, если только не требуется получить два диска с одинаковыми образами.
Для анализа кодов завершения, выведенных командой xcopy, используйте параметр уровень_ошибки в командной строке if пакетных программ. Чтобы увидеть пример пакетной программы, обрабатывающей коды завершения с помощью if. В следующей таблице перечислены коды завершения с кратким описанием.
Примеры
Чтобы копировать все файлы и подкаталоги (включая пустые подкаталоги) с диска A на диск B, введите:
Чтобы включить в операцию копирования предыдущего примера системные и скрытые файлы следует использовать параметр /h:
xcopy a: b: /s /e /h
Чтобы обновить файлы в каталоге \Reports файлами из каталога \alldata, измененными после 29 декабря 2013 года, введите:
Чтобы обновить файлы предыдущего примера, уже существующие в каталоге \Reports, независимо от их даты, введите следующую команду:
Чтобы получить список файлов, которые были бы скопированы в предыдущем примере, следует ввести команду:
Список файлов, которые были бы скопированы, находится в файле Xcopy.out.
Чтобы скопировать каталог \Customer и все подкаталоги \\Public\Address на сетевой диск H, сохранить у файлов атрибут «только для чтения», введите команду:
Для запуска программы 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:
Следует отметить, что XCOPY предназначена для работы с файлами и каталогами, но не с устройствами (например, c принтером).
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).
Новый раздел о средствах командной строки в рамках этого же проекта расположен здесь
Extended Copy Utility
Утилита командной строки для копирования файлов и папок.
Синтаксис
Параметры
Примечание
- Сравнение команд xcopy и diskcopy
Команда xcopy должна быть использована вместо diskcopy при копировании файлов и подкаталогов на диск другого формата. Так как команда diskcopy копирует диски по дорожкам, требуется, чтобы исходный диск и диск-результат имели одинаковый формат. Для команды xcopy это требование не нужно. Обычно следует использовать команду xcopy, если только не требуется получить два диска с одинаковыми образами.
При использовании команды xcopy внутри пакетных файлов можно анализировать ее код завершения, который позволяет определить причину завершения выполнения программы. В следующей таблице перечислены коды завершения с кратким описанием.
Примеры
Чтобы копировать все файлы и подкаталоги (включая пустые подкаталоги) с диска A на диск B, введите:
Чтобы включить в операцию копирования предыдущего примера системные и скрытые файлы следует использовать параметр /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 \customer h:\public\address /s /e /k /p /i
Для запуска программы xcopy и анализа кодов завершения можно создать пакетный файл и использовать оператор if для обработки кодов завершения в случае возникновения ошибок. Например, следующая пакетная программа использует замещаемые параметры для задания источника xcopy и результата:
@echo off
rem COPYIT.BAT копирует все файлы во всех подкаталогах
rem исходного диска или каталога (%1) на другой диск
rem или в другой каталог (%2)
??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:
В разделе Примеры показан принцип использования этой команды.
Синтаксис
Параметры
Комментарии
Использование /z
Если вы потеряли подключение на этапе копирования (например, если сервер переходит в режим «вне сети»), то после повторного подключения Подключение возобновится. /z также отображает процент выполнения операции копирования для каждого файла.
Использование /y в переменной среды копикмд.
В переменной среды КОПИКМД можно использовать параметр /y . Эту команду можно переопределить с помощью /-и в командной строке. По умолчанию выводится запрос на перезапись.
Копирование зашифрованных файлов
Копирование зашифрованных файлов на том, который не поддерживает EFS, приводит к ошибке. Сначала расшифровать файлы или скопировать их на том, который поддерживает EFS.
Чтобы добавить файлы, укажите один файл для назначения, но несколько файлов для источника (то есть с помощью подстановочных знаков или формата file1 + file2 + файл3).
Значение по умолчанию для назначения
Если опустить назначение, команда xcopy скопирует файлы в текущий каталог.
Указание того, является ли назначение файлом или каталогом
Нажмите клавишу F, если хотите скопировать файл или файлы в файл. Нажмите клавишу D, если хотите скопировать файл или файлы в каталог.
Использование команды xcopy для установки атрибута архива для целевых файлов
Команда xcopy создает файлы с установленным атрибутом Archive, независимо от того, был ли этот атрибут задан в исходном файле. Дополнительные сведения об атрибутах файлов и attribсм. в разделе Дополнительные ссылки.
Сравнение xcopy и diskcopy
Если у вас есть диск, содержащий файлы в подкаталогах, и вы хотите скопировать его на диск, имеющий другой формат, используйте команду xcopy вместо команды diskcopy. Так как команда diskcopy копирует диски по дорожке, исходный и целевой диски должны иметь одинаковый формат. Команда xcopy не имеет этого требования. Используйте xcopy , если вам не нужна полная копия образа диска.
Коды выхода для команды xcopy
Для обработки кодов завершения, возвращаемых xcopy, используйте параметр ERRORLEVEL в командной строке If в пакетной программе. Пример пакетной программы, обрабатывающей коды завершения с помощью If, см. в разделе Дополнительные ссылки. В следующей таблице перечислены все коды выхода и их описание.
Примеры
1. чтобы скопировать все файлы и подкаталоги (включая все пустые подкаталоги) с диска A на диск B, введите:
2. чтобы включить в предыдущий пример все системные или скрытые файлы, добавьте параметр командной строки/h следующим образом:
3. чтобы обновить файлы в каталоге \репортс с файлами в каталоге \равдата, которые были изменены с 29 декабря 1993 г., введите:
4. чтобы обновить все файлы, существующие в \репортс в предыдущем примере, независимо от даты, введите:
5. чтобы получить список файлов для копирования с помощью предыдущей команды (т. е. без фактического копирования файлов), введите:
Файл xcopy. out содержит список всех копируемых файлов.
6. чтобы скопировать каталог \кустомер и все подкаталоги в каталог \\публик\аддресс на сетевом диске H:, оставьте атрибут "только для чтения" и при создании нового файла в H: введите:
8. можно создать пакетную программу для выполнения операций xcopy и использовать пакет If для обработки кода выхода при возникновении ошибки. Например, в следующей пакетной программе для параметров источника и назначения xcopy используются заменяемые параметры:
Чтобы использовать предыдущую пакетную программу для копирования всех файлов в каталоге К:\пргмкоде и его подкаталогов на диск B, введите:
9. в этом примере копируются все непустые каталоги, а также файлы, имя которых соответствует шаблону, заданному с помощью символа звездочки.
В предыдущем примере это конкретное значение исходного параметра .\ток *. yml копирует те же три файла, даже если их два символа пути . \ были удалены. Однако файлы не копируются, если из исходного параметра был удален подстановочный знак «звездочка», что делает его просто .\ток.ИМЛ.
Копирует каталоги, их подкаталоги и файлы (кроме скрытых и системных).
Параметр "источник" задает расположение и имена файлов, которые вы хотите скопировать, и может включать в себя диск или маршрут. "Приемник" задает место, куда копируются файлы, и может включать в себя буквенную метку диска, маршрут, имя файла или их комбинацию.
Параметр /Y указывает, что вы хотите заменить существующий файл (файлы) без запроса на подтверждение. По умолчанию, когда вы задает в качестве целевого файла существующий файл, XCOPY будет запрашивать, хотите ли вы затереть его. (В предыдущих версиях MS-DOS такой файл перезаписывался без запроса.) Если команда XCOPY используется в командном файле, то запрос в любом случае не выводится. Задание этого параметра переопределяет установку переменной операционной среды COPYCMD.
/-Y указывает, что вы при замене существующего файла вы хотите выводить в XCOPY запрос на подтверждение. Задание этого параметра переопределяет установку переменной операционной среды COPYCMD.
О копировании отдельных файлов рассказывается в описании команды COPY, а о копировании дисков - в описании DISKCOPY.
Если вы не указываете приемник, XCOPY копирует файлы в текущий каталог. Если приемник не содержит существующий каталог и не заканчивается \, XCOPY выводит подсказку вида: Нажмите соответствующую букву.
В старых версиях MS-DOS, XCOPY копирует скрытые и системные файлы. MS-DOS 6 это не так. Для копирования этих файлов измените их атрибуты с помощью команды ATTRIB.
Независимо от установки атрибута архивизации в исходном файле, XCOPY создает файлы с установленным атрибутом архивизации.
В отличие от команды DISKCOPY, которая копирует диски по дорожкам и требует, чтобы исходный и целевой диски имели один формат, XCOPY не имеет такого ограничения.
Чтобы задать, хотите ли вы выводить в командах COPY, MOVE и XCOPY запрос на подтверждение перед затиранием файла, когда команда дается из командной строки или командного файла, можно установить переменную операционной среды COPYCMD. Чтобы команды COPY, MOVE и XCOPY во всех случаях выводили запрос, установите переменную COPYCMD в /-Y. Для отмены запроса задайте в COPYCMD /Y. Указание /Y или /-Y в командной строке переопределяет значение переменной COPYCMD.
В предыдущих версиях MS-DOS XCOPY копировала скрытые и системные файлы. В MS-DOS 6.2 это не так. Для переопределения атрибута файла используйте команду ATTRIB.
Коды выхода команды XCOPY перечислены в следующей таблице:
Читайте также: