Xcopy файл. Батник для резервного копирования
Команда COPY
Источник [+ источник [+ ...]] [результат ]:
источникИмена одного или нескольких копируемых файлов.
/AФайл является текстовым файлом ASCII.
/BФайл является двоичным файлом.
результатКаталог и/или имя для конечных файлов.
/VПроверка правильности копирования файлов.
/N Использование, если возможно, коротких имен при копировании файлов, чьи имена не удовлетворяют стандарту 8.3.
/Y Подавление запроса подтверждения на перезапись существующего конечного файла.
/-Y Обязательный запрос подтверждения на перезапись существующего конечного файла.
Ключ /Y можно установить через переменную среды COPYCMD.
Ключ /-Y командной строки переопределяет такую установку.
По умолчанию требуется подтверждение, если только команда COPY не выполняется в пакетном файле
Команда XCOPY
Чтобы объединить файлы, укажите один конечный и несколько исходных файлов, используя подстановочные знаки или формат "файл1+файл2+файл3+...". Копирование файлов и структур каталогов.
источник [результат] ] ]
[+файл3]...]
источник Копируемые файлы.
результат Местоположение и/или имена новых файлов.
/A Копирование только файлов с установленным архивным атрибутом. Сам атрибут при этом не изменяется.
/M Копирование только файлов с установленным архивным атрибутом. После копирования атрибут снимается.
/D:датаКоп. файлов, измененных не ранее указанной даты. Если дата не указана, заменяются только конечные файлы
/EXCLUDE:файл1[+файл2][+файл3]...Список файлов, содержащих строки. Когда любая из строк Совпадает с любой частью абсолютного пути к копируемому файлу, такой файл исключается из операции копирования. К примеру, указав строку obj или.obj можно исключить все файлы из папки obj или все файлы с расширением obj соответственно.
/P Вывод запросов перед созданием каждого нового файла.
/S Копирование каталогов с подкаталогами (кроме пустых).
/E Копирование каталогов с подкаталогами (в том числе пустых).
Эквивалентен сочетанию ключей /S /E. Совместим с ключом /T. /V
Сравнение конечных файлов с исходными.
/W Вывод запроса на нажатие клавиши перед копированием.
/C Продолжение копирования, независимо от наличия ошибок.
/I Если результат не существует, а копируется несколько файлов, считается, что указано имя каталога.
/Q Запрет вывода имен копируемых файлов.
/F Вывод полных имен исходных и конечных файлов.
/L Вывод имен копируемых файлов.
/H Копирование скрытых и системных файлов (среди прочих).
/R Разрешение замены файлов, предназначенных только для чтения.
/T Создание структуры каталогов (кроме пустых каталогов) без копирования файлов. Если требуется создать пустые каталоги и подкаталоги, используйте сочетание ключей /T /E.
/U Копирование только файлов, уже имеющихся в конечном каталоге.
/K Копирование атрибута "Только чтение" (обычно он сбрасывается).
/N Использование коротких имен при копировании.
/O Копирование сведений о владельце и данных ACL.
/X Копирование параметров аудита файлов (требует /O).
/Y Подавление запроса подтверждения на перезапись существующего конечного файла. /-Y Обязательный запрос подтверждения на перезапись существующего конечного файла.
/Z Копирование сетевых файлов с возобновлением.
Ключ /Y можно установить через переменную среды COPYCMD. Ключ /-Y командной строки переопределяет такую установку.
Пример: 1. Копирование text.txt в A:ЗаданияНовая
2. При копировании имя файла будет изменено
Иногда хочется хочется не только любви, славы и карьеры, а еще и некоторой автоматизации.
Опять же по примеру вернемся немного к основам.
Хочу рассказать о том, как написать простой батник для резервного копирования из определенного источника по указанному пути.
Копирует файлы и каталоги, включая подкаталоги. Ниже приведен синтаксис работы.
Синтаксис утилиты xcopy
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 Копирует по сети в режиме перезапуска. /? Отображает справку в командной строке.Создаем тестовый файл с содержанием:
xcopy C:\сайт\copy C:\сайт\backup /f /i /y /sГде C:\сайт\copy — то что мы копируем, а C:\itescforu.ru\backup — путь куда копируем.
Переименовыем файл из.txt в.bat и при необходимости запускаем 🙂
www.сайтКоманда XCOPY реализована во всех версиях PC-DOS и MS-DOS начиная с версии 3.2. Она позволяет выполнять следующие операции:
- копировать каталоги со всеми подкаталогами и размещенными в них файлами, а следовательно, и магнитные диски в целом (за исключением скрытых файлов);
- создавать в процессе копирования отсутствующие на целевом диске каталоги файлов;
- копировать файлы выборочно, в зависимости от состояния архивного атрибута файлов;
- копировать только файлы, модифицированные позднее указанной даты;
получать копии, расположенные на нескольких дискетах;
- использовать всю свободную оперативную память для буферизации операций обмена с дисками при копировании.
Команда XCOPY реализована в виде автономной программы, загрузочный модуль которой занимает в памяти около 11 Кбайт, что эквивалентно примерно половине объема интерпретатора командной строки COMMAND.COM, занимающего около 25 Кбайт (для версии 3.3). После сопоставления этих цифр становится ясно, что реализация функций XCOPY в резиденте системы не целесообразна.
Следует отметить, что XCOPY в отличие от COPY не поддерживает терминальные устройства последовательного доступа, так как в арсенале внешнего сервиса DOS эти средства имеются для каждого типа устройств в отдельности.
По сравнению с командой BACKUP, описанной ниже, XCOPY обладает существенным достоинством - возможностью доступа к отдельным файлам копии.
НАЗНАЧЕНИЕ. Команда XCOPY предназначена для копирования файлов. Однако по сравнению с COPY она предоставляет пользователю существенно более широкие сервисные возможности, а также позволяет повысить скорость передачи файлов за счет более рациональной буферизации ввода-вывода при обмене с магнитными дисками.
ОПИСАНИЕ. Алгоритм выполнения команды XCOPY аналогичен алгоритму COPY, за исключением буферизации обмена с дисками. COPY читает файлы только по одному и сразу после считывания информации из очередного исходного файла, на магнитном диске формируется соответствующий целевой файл. XCOPY считывает столько файлов, сколько возможно разместить в буфере, занимающем всю свободную оперативную память и только потом записывает его содержимое в целевые файлы.
Это отличие сказывается на времени копирования файлов тем существеннее, чем больше файлов переписывается за одну команду и чем меньше их размеры. Например, при перезаписи пяти-семи небольших файлов время копирования по команде XCOPY может оказаться в полтора-два раза меньше, чем при использовании команды COPY.
Сокращение времени обмена происходит из-за уменьшения количества вспомогательных физических операций доступа к данным, выполняемых при обмене с магнитными дисками, таких как: выбор рабочей поверхности (загрузка/разгрузка магнитных головок), включение/выключение двигателя, позиционирование магнитных головок и некоторых других. Перечисленные операции - наиболее длительные по времени, что ведет к существенному увеличению быстродействия операции копирования.
Если за именем целевого накопителя в командной строке следует еще одно имя, XCOPY выдает уточняющий запрос:
Does "имя" specify a file name or directory name on the target (F = file, D = directory)?
(Как трактовать введенное имя - как имя каталога или как имя файла? F - файл, D - каталог).
Причина вывода этого запроса - неоднозначность ситуации, в которой невозможно определить, является ли указанное имя именем файла или каталога. Например, при вводе команды, приведенной в примере 38, система не знает, что означает специфицированное имя G2 - имя целевого файла или имя целевого каталога. В случае существования каталога с именем G2 запроса бы не было и XCOPY однозначно разместила бы целевой файл под именем G2.K22 в каталоге G2.
Для получения копии, расположенной на двух или более дискетах, необходимо провести следующие операции:
- установить архивный атрибут для всех перезаписываемых файлов с помощью команды ATTRIB;
- ввести команду копирования XCOPY с ключом /М;
- после появления сообщения
Insufficient disk space
(свободное пространство на диске отсутствует)
или кода завершения 4, загрузить свободную целевую дискету;
- повторить команду XCOPY с теми же параметрами.
В процессе выполнения этой операции смена дискет повторяется до тех пор, пока не будет скопирована вся необходимая информация.
Работая с командой XCOPY, нужно учитывать следующие ограничения:
- XCOPY копирует файлы только с магнитных носителей и не работает с терминальными устройствами;
- XCOPY не копирует файлы, защищенные от записи, а также скрытые файлы;
- в качестве имени файла по умолчанию XCOPY использует шаблон *.* ;
- ключ /А в командах COPY и XCOPY имеет разное значение;
- если символы переадресации установлены в целевой спецификации команды, переадресовываются только сообщения, выдаваемые самой командой XCOPY;
- при копировании файлов на гибкие магнитные диски длина копируемого файла не должна превышать размера свободного пространства целевого диска (в отличие от команды BACKUP).
Коды завершения команды XCOPY:
0 - нормальное завершение;
1 - не найдено ни одного файла для копирования;
2 - преждевременное завершение после ввода пользователем CTRL/C (CTRL/BREAK);
4 - ошибка инициализации, вызванная отсутствием достаточного свободного пространства на магнитном диске;
5 - фатальная ошибка.
Причины формирования кода 4:
- не готов целевой привод магнитных дисков;
- в выводной спецификации командной строки допущена синтаксическая ошибка;
- не найден каталог;
- диск переполнен.
Причина установки кода 5 - фатальная ошибка, возникшая при обмене с магнитным диском. В подобных случаях стандартные драйверы ввода-вывода инициируют прерывание 24Н. Если пользовательская программа не переадресовала на себя вектор прерывания 24Н, то система выведет сообщение
Error reading (or writing) drive x: Abort, Ignore, Retry? (Ошибка при чтении (или записи) на диске х: Удалить, Игнорировать, Повторить?).
Если ошибка произошла при обмене с жестким диском, то дополнительно выведется четвертый вариант выхода из сбойной ситуации:
Fail?
(Отказаться?).
Код 5 устанавливается, если пользователь в ответ на данный запрос выбрал вариант ABORT.
Код завершения может быть проанализирован с помощью переменной ERRORLEVEL и команды IF в пакетном файле.
Команда XCOPY внешняя, выполняется программой, загрузочный модуль которой содержится в файле XCOPY.EXE.
ФОРМАТ.
[маршрут1 XCOPY спец.файла1 [спец.файла2]
Спецификация маршрут - каталог, содержащий файл загрузочного модуля программы XCOPY. Она необходима, если этот каталог не текущий и не альтернативный.
Спец.файла1 - спецификация копируемых файлов, включающая имя накопителя, маршрут, имена и расширения имен файлов. Шаблоны "*" и "?" разрешены. Если в данной спецификации имя и расширение имени файла не указаны, то по умолчанию принимается *.* .
Спец.файла2 - спецификация целевых файлов. Она включает имя накопителя, маршрут, имена и расширения имен файлов. Шаблоны "*" и "?" разрешены.
Ключ /А позволяет копировать только файлы, для которых установлен архивный атрибут.
Ключ /0:дд-мм-гг устанавливает режим копирования только файлов, модифицированных за период времени начиная: указанного числа и до текущего момента.
Ключ /Е задает режим, в котором на целевом накопителе:оздаются подкаталоги, соответствующие подкаталогам источника (в случае их отсутствия), даже если каталоги на исходном диске пустые (не содержат файлов). Этот ключ нужно ис- тользовать вместе с ключом /S.
По ключу /М, как и по ключу /А, копируются только фхивные файлы, но у целевых файлов сбрасывается архивный [трибут.
Ключ /Р - вывод запросов на подтверждение необходимо- ти копирования каждого файла.
Ключ /S - копирование не только файлов текущего каталога, но и файлов, содержащихся в подкаталогах. Соответствующие подкаталоги на целевом накопителе создаются автоматически.
Ключ /V - установка режима верификации при записи на диск на время копирования (аналогично режиму VERIFY ON).
Ключ /W - запуск указанной операции копирования файлов только после ответа на дополнительную подсказку. В этом случае программа XCOPY перед началом копирования выдаст следующее сообщение:
Press any key when ready to start copying files
(Для запуска операции копирования файлов нажмите какую-
нибудь клавишу).
Отмена режима копирования обеспечивается кодом CTRL- С, запуск - нажатием любой алфавитно-цифровой клавиши, пробела или
Пример 38.
С:\>хсору g2.k22 a:g2
Does G2 specify a file name or director^" name on the target (F - file, О - directory)?
После ввода "F" файл будет скопирован, о чем выведется сообщение
Reading source file(s)... G2.K22
1 File(s) copied
C:\>
В результате в корневом каталоге на накопителе А: появится файл-копия с именем G2 без расширения имени файла.
Пример 39.
С:\>хсору g2.k22 a:g2
Does G2 specify a file name or directory name on the target (F - file, D - directory)?
После ввода "D" файл будет скопирован и выведется сообщение
Reading source fiie(s)... G2.K22
1 File(s) copied
C:\>
В результате в корневом каталоге на приводе А: появится каталог с именем G2, содержащий целевой файл G2.K22 .
Пример 40.
С:\>хсору con: read.txt
CON File not found
0 File(s) copied
C:\>
В этом примере показана попытка ввода с клавиатуры. Так как команда XCOPY с консолью не работает, она рассматривает имя консоли, как обычное имя файла. Такой файл отсутствует, о чем и свидетельствует сообщение об ошибке.
Пример 41. С:\>хсору *.* а:
Reading source file(s)...
G2.K22
G1.K22
G6.K22
G4.K22
G5.K22
G0.K22
G3.K22
7 File(s) copied
Копирует файлы и директории, включая вложенные директории. Работает в командной строке Windows .
Синтаксис команды:
xcopy источник [целевой_объект] ] ] [{/a|/m}] ][+] [{/y|/-y}]Параметры:
источник: обязательный параметр. Определяет расположение и имена файлов которые вам нужно скопировать. Данный параметр должен включать устройство или путь.
целевой_объект: Опеределяет место назначения копируемых файлов. Может включать в себя букву диска с двоеточием, имя директории, имя файла, или комбинацию их.
/w: отображает сообщение "Press any key to begin copying file(s)" и ждет вашего ответа прежде чем начать копирование файлов.
/p: будет выдавать запрос перед созданием каждого файла.
/c: игнорирование ошибок.
/v: проверяет каждый файл после их записи на идентичность исходным. В Windows XP он не используется. Оставлен для совместимости с MS-DOS файлами
/q: тихий режим. Не выводит сообщения во время работы.
/f: отображает имена файлов при копировании.
/l: отобразить имена файлов которые будут копироваться.
/g: Копирование зашифрованных файлов в целевой каталог, не поддерживающий шифрование.
/d[:mm-dd-yyyy] : копировать файлы которые изменены позже указаной даты, включаю указанную. Если не указать значение mm-dd-yyyy (месяц-день-год), xcopy будет копировать файлы которые более новые чем в папке назначения. Вообщем эта команда позволяет обновить файлы, которые изменились.
/u: копировать только те файлы которые уже есть в папке назначения. Т.е. обновить их.
/i: если источник это директория или содержит wildcards (ну типа *) и целевой_объект не указан, то xcopy предполагает что целевой_объект это директория и создает ее. По умолчанию xcopy запрашивает у вас целевой_объект это директория или файл.
/s: директории и поддиректории в которых нет файлов будут пропущены. Если опустить этот параметр, xcopy работает внутри одной директории.
/e: копировать все поддиректории, даже если они пустые. Эквивалентен сочетанию ключей /s /e . Совместим с ключом /t .
/t: Создание структуры каталогов без копирования файлов. Пустые каталоги и подкаталоги не включаются в процесс копирования. Для создания пустых каталогов и подкаталогов используйте сочетание ключей /t /e .
/k: при копировании сохраняется атрибут "только для чтения". По умолчанию он сбрасывается.
/r: перезапись файлов, предназначенных только для чтения.
/h: копировать скрытые и системные файлы. По умолчанию xcopy не копирует эти файлы.
/a: копировать файлы у которых имеется атрибут архива. Сам атрибут при этом сохраняется. Для установки этого атрибута можно использовать команду attrib.
/m: почти тоже что и с ключем /a , только в данном случае атрибут архива будет сбрасываться у исходных файлов.
/n: делает имена файлов и папок короткими. Может понадобиться в случае копирования с FAT на NTFS. Потомучто FAT (8.3 символа) не поддерживает длинные имена как NTFS.
/o: копируется информация о пользователе файла и информация DACL (discretionary access control list).
/x: копирование параметров аудита файлов и информация SACL (подразумевает ключ /o).
/exclude:файл1[+[файл2]][+[файл3]] ... : список файлов, содержащих строки с критериями для исключения файлов и папок из процесса копирования. Каждая строка должна располагаться в отдельной строке файла. Если какая-либо из строк совпадает с любой частью абсолютного пути к копируемому файлу, такой файл исключается из операции копирования. Например, указав строку \obj\ или.obj, можно исключить все файлы из папки obj или все файлы с расширением OBJ соответственно.
/y: чтобы не спрашивал когда нужно перезаписать уже существующий файл.
/-y: противоположность ключу /y .
/z: копировать по сети в возобновляемом режиме.
/? : вывести помощь. Подсказки по параметрам команды.
Примеры использования xcopy
Как скопировать папку в другую папку, сохранив при этом ее разрешения
Когда копируете файлы и папки в проводнике Windows, разрешения этих файлов и папок изменятся. Файлы будут помечены как новые, и наследуют разрешения папки в которую копируем. В качестве создателя файла будет указана ваша учетка.
Примечание: У вас должны быть права на запись в папку которую собираетесь копировать файлы.
Для сохранения первоначальных разрешений файлов, вам нужно воспользоваться следующими параметрами /O, /X, /E, /H и /K, которые означают следующее:
- /E - Копирует все файлы и папки, включая пустые.
- /H - Копирует также скрытые и системные файлы.
- /K - Копирует атрибуты. По умолчанию команда "Xcopy" снимает атрибут "Только чтение".
- /O - Копирует информацию о владельце и ACL.
- /X - Копирует настройки аудита (требуется параметр "/O").
Примечание: Данная процедура не отменяет наследуемые разрешения. Будут применяны следующие наследуемые разрешения:
- Настройки безопасности, примененные непосредственно к файлам и папкам, сохраняются.
- Настройки безопасности, унаследованные от папки назначения, теряются.
- Настройки безопасности папки назначения наследуются.
- При перемещении файлов или папок на диск с файловой системой FAT, данные файлы и папки теряют свои разрешения NTFS, так как разделы FAT не поддерживают разрешения NTFS.
Пример
xcopy c:\oldfolder c:\newfolder /O /X /E /H /K , где "oldfolder" - это папка, содержащая копируемые файлы, а "newfolder" - это папка назначения.
В современных версиях Windows удобнее использовать программу
Копирует файлы и каталоги, включая подкаталоги.
Описание команды xcopy, параметры, примеры использования.
Синтаксис
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
Начиная с Windows XP эта команда не используется. Она предназначена для обеспечения совместимости с файлами MS-DOS
- Использование параметра /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 создает файлы с установленным атрибутом «архивный», независимо от состояния этого атрибута у исходных файлов. Для получения дополнительных сведений об атрибутах файлов команде attrib .
- Сравнение команд xcopy
и diskcopy
Команда xcopy должна быть использована вместо diskcopy при копировании файлов и подкаталогов на диск другого формата. Так как команда diskcopy копирует диски по дорожкам, требуется, чтобы исходный диск и диск-результат имели одинаковый формат. Для команды xcopy это требование не нужно. Обычно следует использовать команду xcopy , если только не требуется получить два диска с одинаковыми образами.
- Коды завершения программы xcopy
Для анализа кодов завершения, выведенных командой xcopy , используйте параметр уровень_ошибки в командной строке if пакетных программ. Чтобы увидеть пример пакетной программы, обрабатывающей коды завершения с помощью . В следующей таблице перечислены коды завершения с кратким описанием.
Примеры
Чтобы копировать все файлы и подкаталоги (включая пустые подкаталоги) с диска A на диск B, введите:
xcopy a: b: /s /e
Чтобы включить в операцию копирования предыдущего примера системные и скрытые файлы следует использовать параметр /h :
xcopy a: b: /s /e /h
Чтобы обновить файлы в каталоге \Reports файлами из каталога \alldata, измененными после 29 декабря 2013 года, введите:
xcopy \alldata \reports /d:29-12-2013
Чтобы обновить файлы предыдущего примера, уже существующие в каталоге \Reports, независимо от их даты, введите следующую команду:
xcopy \alldata \reports /u
Чтобы получить список файлов, которые были бы скопированы в предыдущем примере, следует ввести команду:
xcopy \alldata \reports /d:29-12-2013 /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 может работать с датами создания (модификации) файла, ее можно использовать, например, для копирования файлов, созданных (модифицированных) сегодня:
xcopy c:\TEMP D:\vbk\in /D:%date:~3,2%-%date:~0,2%-%date:~8%
Для запуска программы xcopy и анализа кодов завершения можно создать пакетный файл и использовать оператор для обработки кодов завершения в случае возникновения ошибок. Например, следующая пакетная программа использует замещаемые параметры для задания источника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:
Где copyit - имя командного файла, текст которого приведен выше.
Командный интерпретатор подставляет C:\Prgmcode вместо параметра %1
и B вместо
параметра %2
, затем использует команду xcopy
с параметрами /e
и
/s
.
Если при выполнении xcopy
произошла ошибка, пакетная программа считывает
код завершения и переходит на метку, указанную в соответствующей инструкции
IF ERRORLEVEL
. В результате на экран выводится сообщение о
характере ошибки и осуществляется выход из пакетной программы.
Следует отметить, что XCOPY предназначена для работы с файлами и каталогами, но не с устройствами (например, c принтером).