Полный список команд можно вывести набрав HELP в командной строке.
The copy
Command Prompt command
duplicates a file, storing the second version in a different location of your choosing.
Use the command to copy a file using its specific name and file extension
or use a wildcard to copy groups of files at once, regardless of the file names or extensions. Some other command options include verification that the files were copied correctly and suppression of prompts to overwrite files of the same name.
И в данном посте я рассмотрю замену и копирование файлов через командную строку, а именно, утилиты COPY и REPLACE. Но сперва, как всегда немого лирики.
Пожалуй, любой программист сталкивался с вопросом написания функции для копирования каталога с файлами. Как правило, эти задачи решались при использовании рекурсии. В былые времена, не было мышки и правого клика со вкладкой «копировать, вырезать, вставить», да и синий Волков не сразу появился. Это теперь все так привычно, сидишь за клавиатурой, втыкаешь в зеленое поле Винды, клик туда, клик сюда, и все, задачу решил. Но, бывали и трудные ситуации, когда приходилось прибегать к синему менеджеру. Как не странно, но командная строка и ее утилиты от версии к версии меняют свой вид, Есть даже целый набор утилит типа PsUtils, которые эффективней стандартных ДОСовских. Логический вопрос, кому это все надо! Какой смысл изобретать современного динозавра, йоп те! С другой стороны, такова наша природа человеческая, мы готовы даже велосипед снова изобрести, лишь бы занять свой ум.
-
29.01.2020 -
53 368 -
02.11.2020 -
28
Описание
XCOPY
– Копирует файлы и каталоги, включая подкаталоги.
Синтаксис
Параметры
Примечания
- Использование параметра /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
- Использование параметра /exclude
Для анализа кодов завершения, выведенных командой xcopy
, используйте параметр уровень_ошибки
в командной строке if
пакетных программ.
В следующей таблице перечислены коды завершения с кратким описанием.
Примеры использования
Чтобы копировать все файлы и подкаталоги (включая пустые подкаталоги) с диска 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
. В результате на экран выводится сообщение о характере ошибки и осуществляется выход из пакетной программы.
Справочная информация
Copy Related Commands
This command is similar to the xcopy command
, but unlike copy, xcopy works on folders, too.
Of course, a command isn’t necessary if you’d rather copy a file in Windows using File Explorer
.
Thanks for letting us know!
Команды MKDIR и RMDIR
MKDIR "C:\Примеры" RMDIR "C:\Примеры"
Команда MKDIR не может быть выполнена, если каталог или файл с заданным именем уже существует. Команда RMDIR не будет выполнена, если удаляемый каталог не пустой.
Команда DEL
Удалить один или несколько файлов можно с помощью команды
DEL [диск:][путь]имя_файла [ключи]
Команда XCOPY
Указанные при описании команды COPY проблемы можно решить с помощью команды XCOPY, которая предоставляет намного больше возможностей при копировании. Необходимо отметить, правда, что XCOPY может работать только с файлами и каталогами, но не с устройствами.
Синтаксис этой команды:
XCOPY источник [результат] [ключи]
XCOPY "C:\Мои документы\*.*" "D:\BACKUP\Мои документы" /D
скопирует в каталог ‘D:\BACKUP\Мои документы’ только те файлы из каталога ‘C:\Мои документы’, которые были изменены со времени последнего подобного копирования или которых вообще не было в ‘D:\BACKUP\Мои документы’.
Ключ /S позволяет копировать все непустые подкаталоги в каталоге-источнике. С помощью же ключа /E можно копировать вообще все подкаталоги, включая и пустые.
Если указан ключ /C, то копирование будет продолжаться даже в случае возникновения ошибок. Это бывает очень полезным при операциях копирования, производимых над группами файлов, например, при резервном копировании данных.
Ключ /I важен для случая, когда копируются несколько файлов, а файл назначения отсутствует. При задании этого ключа команда XCOPY считает, что файл назначения должен быть каталогом. Например, если задать ключ /I в команде копирования всех файлов с расширением txt из текущего каталога в несуществующий еще подкаталог TEXT,
XCOPY *.txt TEXT /I
то подкаталог TEXT будет создан без дополнительных запросов.
Ключи /Q, /F и /L отвечают за режим отображения при копировании. При задании ключа /Q имена файлов при копировании не отображаются, ключа /F — отображаются полные пути источника и результата. Ключ /L обозначает, что отображаются только файлы, которые должны быть скопированы (при этом само копирование не производится).
С помощью ключа /H можно копировать скрытые и системные файлы, а с помощью ключа /R — заменять файлы с атрибутом “Только для чтения”. Например, для копирования всех файлов из корневого каталога диска C: (включая системные и скрытые) в каталог SYS на диске D:, нужно ввести следующую команду:
XCOPY C:\*.* D:\SYS /H
Ключ /T позволяет применять XCOPY для копирования только структуры каталогов источника, без дублирования находящихся в этих каталогах файлов, причем пустые каталоги и подкаталоги не включаются. Для того, чтобы все же включить пустые каталоги и подкаталоги, нужно использовать комбинацию ключей /T /E.
Используя XCOPY можно при копировании обновлять только уже существующие файлы (новые файлы при этом не записываются). Для этого применяется ключ /U. Например, если в каталоге C:\2 находились файлы a.txt и b.txt, а в каталоге C:\1 — файлы a.txt, b.txt, c.txt и d.txt, то после выполнения команды
XCOPY C:\1 C:\2 /U
в каталоге C:\2 по-прежнему останутся лишь два файла a.txt и b.txt, содержимое которых будет заменено содержимым соответствующих файлов из каталога C:\1. Если с помощью XCOPY копировался файл с атрибутом “Только для чтения”, то по умолчанию у файла-копии этот атрибут снимется. Для того, чтобы копировать не только данные, но и полностью атрибуты файла, необходимо использовать ключ /K.
Ключи /Y и /-Y определяют, нужно ли запрашивать подтверждение перед заменой файлов при копировании. / Y означает, что такой запрос нужен, /-Y — не нужен.
Xcopy – Exclude files
If you want to copy a directory to another location but want to exclude some files then you can use /EXCLUDE switch with Xcopy command. You need to put the list of the files to be excluded in a file and then specify this file with the /EXCLUDE switch.
Xcopy /I Sourcedir Destdir /EXCLUDE:filename
Example:
Copy the directory D:\docs to E:\newdocs\ excluding all pdf and mp3 files:
C:\>type 1.txt .pdf .mp3 C:\>Xcopy D:\docs E:\newdocs /EXCLUDE:1.txt
You can also specify the full names of the files. Each file name/pattern should be in a separate line.
Команда DIR
DIR C:\*.bat
выведет на экран все файлы с расширением bat в корневом каталоге диска C: Если задать эту команду без параметров, то выводится метка диска и его серийный номер, имена (в коротком и длинном вариантах) файлов и подкаталогов, находящихся в текущем каталоге, а также дата и время их последней модификации. После этого выводится число файлов в каталоге, общий объем (в байтах), занимаемый файлами, и объем свободного пространства на диске. Например:
Том в устройстве C имеет метку PHYS1_PART2 Серийный номер тома: 366D-6107 Содержимое папки C:\aditor . <ПАПКА> 25.01.00 17:15 . . <ПАПКА> 25.01.00 17:15 . TEMPLT02 DAT 227 07.08.98 1:00 templt02.dat UNINST1 000 1 093 02.03.99 8:36 UNINST1.000 HILITE DAT 1 082 18.09.98 18:55 hilite.dat TEMPLT01 DAT 48 07.08.98 1:00 templt01.dat UNINST0 000 40 960 15.04.98 2:08 UNINST0.000 TTABLE DAT 357 07.08.98 1:00 ttable.dat ADITOR EXE 461 312 01.12.99 23:13 aditor.exe README TXT 3 974 25.01.00 17:26 readme.txt ADITOR HLP 24 594 08.10.98 23:12 aditor.hlp ТЕКСТО~1 TXT 0 11.03.01 9:02 Текстовый файл.txt 11 файлов 533 647 байт 2 папок 143 261 696 байт свободно
С помощью ключей команды DIR можно задать различные режимы расположения, фильтрации и сортировки. Например, при использовании ключа /W перечень файлов выводится в широком формате с максимально возможным числом имен файлов или каталогов на каждой строке. Например:
Том в устройстве C имеет метку PHYS1_PART2 Серийный номер тома: 366D-6107 Содержимое папки C:\aditor [.] [.] TEMPLT02. DAT UNINST1.000 HILITE. DAT TEMPLT01. DAT UNINST0.000 TTABLE. DAT ADITOR. EXE README. TXT ADITOR. HLP ТЕКСТО~1. TXT 11 файлов 533 647 байт 2 папок 143 257 600 байт свободно
DIR C:\ /A:HS
а для вывода всех файлов, кроме скрытых — команду
DIR C:\ /A:-H
Отметим здесь, что атрибуту каталога соответствует буква D, то есть для того, чтобы, например, вывести список всех каталогов диска C:, нужно задать команду
DIR C: /A:D
Ключ /S означает вывод списка файлов из заданного каталога и его подкаталогов.
Ключ /B перечисляет только названия каталогов и имена файлов (в длинном формате) по одному на строку, включая расширение. При этом выводится только основная информация, без итоговой. Например:
templt02.dat UNINST1.000 hilite.dat templt01.dat UNINST0.000 ttable.dat aditor.exe readme.txt aditor.hlp Текстовый файл.txt
Copy Command Examples
Below are several examples of how to use the copy command:
Copy to a Different Folder
copy Z:\Software\program.iso C:\Users\Jon\Downloads\Programs\
Take note of the space between these two commands. It’s not obvious at first, but the only spaces in this example of the copy command are after copy
and between the source
and destination
files.
Copy and Rename
copy Y:\install\j93n.exe Y:\more\m1284.msi
You can use the copy command to rename a file and even change its file extension. In this example, the j93n.exe
file copies to a new folder on the Y:
drive as m1284.msi
.
This isn’t a file conversion
technique (i.e., the EXE
file isn’t really being converted to MSI
) but instead a way to make an identical copy but with the destination
file saved under a different name and inside a different folder.
copy D:\i386\atapi.sy_ C:\Windows\atapi.sys
In the above example, the atapi.sy_
file, located in the i386
folder on the Windows XP installation CD, is copied to the C:\Windows
directory as atapi.sys
.
Unlike the Y:
drive example above, this one is a bit more realistic, since copying files like that from a disc is a common practice when fixing some specific Windows problems.
Copy to Current Path
copy D:\readme.htm
In this example, the copy command has no destination
specified, so the readme.htm
file is copied to whatever directory you typed the copy command from.
For example, if you type copy d:\readme.htm
from the C:\Windows>
prompt, that HTM file will be copied to C:\Windows
.
Copy Only Certain File Types
copy /y /v C:\Users\Jon\Downloads\*.mp3 C:\Users\Jon\Music\DownloadedMusic\
This command copies all MP3s (*.mp3) from the Downloads
folder to the Music\DownloadedMusic\
folder, but we want to make sure that every file is copied, even if there’s already one in DownloadedMusic
with the same name ( /y
). We’ll verify the copy ( /v
) to make sure Command Prompt tells us whether the files were actually copied or if an error happened in the process.
Папка уже должна существовать в месте назначения
расположение перед тем, как команда копирования скопирует в него файлы. Создайте новые папки в командной строке с помощью mkdir
команда.
Объединить файлы в один
copy Z:\file1.txt+Z:\file2.txt+Z:\file3.txt Z:\combined.txt
Это объединит три TXT
файлов в новый файл с именем Combined.txt
. Как видите, каждый файл, который должен быть частью слияния, должен быть разделен +
, но без пробелов.
Вы также можете использовать звездочку для добавления нескольких файлов. Итак, в нашем примере мы могли бы заменить все эти .txt
экземпляры с Z:\*.txt,
но только если мы хотим объединить каждый файл TXT
из З:
водить машину.
Команда COPY
Одной из наиболее часто повторяющихся задач при работе на компьютере является изменение и перемещение файлов из одного места в другое. Для указания одного или нескольких файлов используется команда COPY.
Синтаксис этой команды:
КОПИРОВАТЬ [/A|/B] источник [/A|/B] [+ источник [/A|/B] [+ .]] [результат [/A|/B]] [/V][/Y|/–Y]
Краткое описание параметров и ключей команды COPY приведено в таблице.
Применяем использование команды COPY.
Копирование файла abc.txt из открытого каталога в каталоге D:\PROGRAM под тем же именем:
КОПИРОВАТЬ abc.txt D:\PROGRAM
Копирование файла abc.txt из открытого каталога в каталоге D:\PROGRAM под новым именем def.txt:
КОПИРОВАТЬ abc.txt D:\PROGRAM\def.txt
Копирование всех файлов с расширением txt с диска A: в каталоге ‘Мои документы’ на диске C:
COPY A:\*.txt "C:\Мои документы"
Если не ожидается просмотра файла, то команда COPY создаст исполняемый файл-источник с тем же именем, датой и временем создания, что и исходный файл, и поместит новый экземпляр в каталоге для использования на диске. Например, для того, чтобы получить все файлы из корневого каталога диска A: в назначенный каталог, достаточно взять такую краткую команду:
КОПИРОВАТЬ A:\*.*
В качестве источника или результата при копировании можно назвать не только файлы, но и устройства для компьютеров. Например, для того, чтобы распечатать файл abc.txt на принтере, можно предложить эту папку на устройство PRN: COPY abc.txt PRN
Другой интересный пример: создадим новый текстовый файл и запишем в него информацию, без использования текстового редактора. Для этого достаточно ввести команду COPY CON my.txt, которая будет копировать то, что вы набираете на клавиатуре, в файл my.txt (если этот файл используется, то он перезаписывается, иначе — создастся). Для завершения ввода необходимо ввести символ конца файла, то есть использование клавиатуры +.
Команда COPY может также объединять (склеивать) несколько файлов в один. Для этого необходимо указать единственный результирующий файл и несколько исходных. Это предполагает использование групповых знаков (? и *) или формата файл1 + файл2 + файл3. Например, для объединения файлов 1.txt и 2.txt в файл 3.txt можно добавить команду:
КОПИРОВАТЬ 1.txt+2.txt 3.txt
Объединение всех файлов с расширением из широкого каталога в одном файле all.dat может быть создано так:
COPY /B *.dat all.dat
Ключ /B здесь используется для предотвращения объединения соединяемых файлов, так как при комбинировании файлов команда COPY по умолчанию описывает файлы текстовыми.
. Если имя целевого файла опущено, то в его качестве используется первый файл из списка. Например, команда COPY 1.txt+2.txt добавляет к содержимому файла 1.txt содержимое файла 2.txt. Командой COPY можно управлять и для присвоения какому-либо файлу отслеживать статистику и время без модификации его папки. Для этого нужно ввести команду типа
КОПИРОВАТЬ /B 1.txt +,,
.
Команда COPY имеет и свои реализации. Например, с ее помощью нельзя копировать обнаруженные и системные файлы, файлы нулевой извлечения, файлы из подлогов. Кроме того, если при копировании группы файлов собран т файл, который в данный момент невозможно найти (например, он занят приложением другим), то процесс использования полностью прервется, и остальные файлы не будут скопированы.
Наличие команды копирования
Копировать параметры команды (Командная строка Windows 11).
Команда копирования доступна из командной строки
в Windows 11
, Windows 10
, Windows 8
, Windows 7
, Windows Vista
и Windows XP
, а также из Дополнительные параметры запуска
и Параметры восстановления системы
меню ремонта/восстановления.
Наличие некоторых переключателей команды копирования и другого синтаксиса команды
может отличаться от операционной системы к операционной системе.
Копировать файлы на основе атрибута архива
Если вы хотите копировать только те файлы, для которых задан атрибут архива, вы можете использовать переключатели /A и /M. Атрибут архива указывает, был ли файл изменен с момента сброса атрибута.
Команда для этого:
Xcopy /A /I /S исходный_каталог целевой_каталог.
Приведенная выше команда сохраняет установленным атрибут архива; Он не сбрасывает атрибут.
Если вы хотите сбросить атрибут архива, вы можете использовать переключатель /M вместо /A. Команда для этого случая будет следующей:
Xcopy /M /I /S исходный_каталог целевой_каталог
Команды, показанные выше, можно использовать и из пакетных файлов. Эта команда доступна в редакциях Windows 7, XP, Vista, Server 2003 и Server 2008.
Копировать файлы на основе даты изменения
Xcopy /D:dd-mm-yy /I исходный_каталог_целевой_каталог
Пример: Скопировать все файлы в директорию «E:data»
которые были изменены 1 февраля 2011 г. или позднее в папку ‘ E:\backup
‘
Xcopy /D:01-02-11 /I E:\data E:\backup
Поддерживаемые версии
Xcopy доступен во всех новых версиях Windows — Windows 10, 7 и 8. В частности, я проверил, что он работает в Windows 10.
Командная строка REPLACE
различие, отличие Эта утилита в том, что она умеет заменять данные. Синтаксис довольно простой и понятный:
– добавление в каталог-результат только новых объектов из каталога-результата (без перезаписи). Этот ключ нельзя использовать с ключами /S
и / У
.
– выводится запрос на подтверждение перед заменой целевого или добавлением исходного файла.
– замещение не только обычных, но и защищенных от записи документов.
– позволяет производить поиск по всем подкаталогам целевого каталога и заменять файлы с совпадающими именами. Этот ключ нельзя использовать совместно с ключом /А
. Поиск в каталогах, заданных параметром пути1, не производится.
– ожидание вставки диска перед началом выполнения
– режим обновления, то есть заменяются только те объекты, которые имеют более раннюю версию модификаций. Несовместимость с ключом /A
.
Заменить D:Datamy_file.txt D:Work
– в папке Work заменяем файл my_file.txt на D:Datamy_file.txt
При копировании файлов через командную строку с помощью утилиты REPLACE отсутствует возможность обновления скрытых или системных файлов. Для этого надо предварительно сменить их атрибуты.
Копировать синтаксис команды
См. Как читать синтаксис команд
если вы не знаете, как интерпретировать синтаксис команды копирования, как это описано выше или в таблице ниже.
Добавляйте файлы, выбирая несколько источников
файлы, но только один пункт назначения
файл.
Команда CD
Текущий каталог можно изменить с помощью команды
CD [диск:][путь\]
Путь к требуемому каталогу привлечения с привлечением выше замечаний. Например, команда CD \ занимается переходом в корневой каталог широкого круга. Если использовать компакт-диск без параметров, то на экране будут представлены известные диски и каталоги.
Команда MOVE
Синтаксис команды для перемещения одного или более файлов имеет вид:
MOVE [/Y|/–Y] [диск:][путь]имя_файла1[,.] результирующий_файл
Синтаксис команды для переименования папки имеет вид:
MOVE [/Y|/–Y] [диск:][путь]каталог1 каталог2
Здесь параметр результирующий_файл задает новое размещение файла и может отображать имя диска, двоеточие, имя каталога, либо их сочетание. Если перемещается только один файл, допускается указать его новое имя. Это позволяет сразу переместить и переименовать файл. Например,
MOVE "C:\Мои документы\список.txt" D:\list.txt
Если указан ключ /-Y, то при создании каталогов и замене файлов будет выдаваться запрос на подтверждение. Ключ /Y отменяет выдачу такого запроса.
Команда REN
Переименовать файлы и каталоги можно с помощью команды RENAME (REN). Синтаксис этой команды имеет следующий вид:
REN [диск:][путь][каталог1|файл1] [каталог2|файл2]
REN *.txt *.doc
Если файл с именем файл2 уже существует, то команда REN прекратит выполнение, и произойдет вывод сообщения, что файл уже существует или занят. Кроме того, в команде REN нельзя указать другой диск или каталог для создания результирующих каталога и файла. Для этой цели нужно использовать команду MOVE, предназначенную для переименования и перемещения файлов и каталогов.
Xcopy command to copy files.
Xcopy /I Source_Directory Destination_directory
Copy a directory including files and sub directories recursively.
Xcopy /S /I /E Source_Directory Destination_directory
For example to copy all the files from D:\data\documents
to the folder E:\Newfolder\documents
we need to run the below command.
Xcopy /S /I /E D:\data\documents E:\Newfolder\documents
This command creates the folder E:\Newfolder\documents
if it already does not exist. It also creates the same directory/file structure in the destination folder. If the destination folder already exists you do not need to add /I switch. If the folder does not exist and you do not specify /I you will be prompted to confirm if the destination is a filer or folder. This would cause issues if you want to run unattended or automated copying of files.
Xcopy command
Xcopy
is a built in command on Windows OS which has advanced features than the basic Copy
command. The additional features Xcopy has are listed below.
- Xcopy can copy directories
- Xcopy can copy all files including subdirectories recursively and can replicate the source directory structure as is.
- Xcopy can exclude files based on file name or extension
- Xcopy can help identify updated files(based on archive attribute or based on a given cutoff date), so it’s useful for incremental backup needs.
Командная строка COPY
Данный шедевр человеческой мысли позволяет произвести копирование (copy) через командную строку файла или файлов или даже их конкатенацию (объединение). Для решения подобных задач север сценариев Windows Script Host
предоставляет в распоряжение метод CopyFile
объекта FileSystemObject. Синтаксис утилиты командной строки copy, довольно устрашающий:
– указывает на возможность создания зашифрованного файла.
– позволяет копировать данные по сети, кстати, в предыдущих вариантах данной утилиты этого ключа не наблюдалось.
– указывает, что файл является текстовым, если мы укажем данный параметр, то копирование прервется на метке конца файла ASCII код 26.
Если же данный параметр указан в самом конце, то эффект совсем другой. Произойдет полное копирование документа, но в копии будет добавлена метка конца файла если ее не было. Как результат, можете попробовать поэкспериментировать с pdf документом (my_file.pdf – размер документа составляет 247217 байт):
copy my_file.pdf/A new_file.pdf
– на выходе мы получим документ new_file.pdf размером в 2538 байт.
– данный ключ идет по умолчанию и указывает, что файл является бинарным. То есть, происходит копирование всего документа.
– данный параметр включает проверку правильности копирования, сравнивая данные после завершения процедуры.
И так командная строка, копирование файлов и парочка примеров:
Копирование через командную строку файла 123.txt из текущего каталога в каталог D:NEW под тем же именем:
COPY 123.txt D:NEW
Копирование файла 123.txt из текущего каталога в каталог D:NEW под новым именем new.txt:
COPY 123.txt D:NEWnew.txt
Копирование всех документов с расширением txt с диска D: в каталог My Data на диске C:
COPY D:*.txt “С:My Data”
Допустим, мы находимся в каталоге D:NEW и нам надо копирнуть в него все данные из каталога C:DATA, в таком случае достаточно прописать следующий синтаксис:
COPY C:DATA *.*
Используя командную строку, копируемые файлы можно склеить. Для этих целей достаточно использовать знак плюса «+», например:
COPY 1.txt +2.txt 3.txt
– в данном примере содержимое документов 1.txt и 2.txt было объединено в 3.txt. Стоит помнить, что по дефолту, утилита COPY воспринимает данные как текстовые.
Вот пример с двоичными данными:
COPY /В *.dat all.dat
– в данном варианте все данные с расширением dat из текущей папки были объединены в один файл all.dat.
Вообще, используя символ плюса «+» и мысли типа «а что если», можно проделать парочку экспериментов. Также стоит помнить ряд моментов:
Если название целевого объекта совпадает с одним из копируемых (кроме первого), то исходное содержимое целевого объекта будет утеряно.
Если имя целевого объекта опущено, то в его качестве будет использован первый объект из списка:
COPY l.txt+2.txt
– тут мы добавили к содержимому первого объекта содержимое второго.
COPY 1.txt +,,
– данная конструкция позволяет присвоить объекту 1.txt текущую дату без его модификации.
Утилита COPY по своему первенству содержит ряд недостатков:
- нельзя производить копирование файлов через командную строку с атрибутами скрытый или системный, а также системных и с атрибутом «Только для чтения».
- обрыв всего процесса копирования при встрече с объектом, который в данный момент не поддается копированию.
В связи с такими неудобствами, умные люди подумали, и прибавили букву Х к названию COPY, чем решили массу проблем, создав утилиту XCOPY
.
Copy files including hidden and system files.
The above command excludes hidden and system files from copying. If you want to these files also then you need to add /H option to your command. Then the command would be
Xcopy /S /I /E /H D:\data\documents E:\Newfolder\documents
/E option causes to copy empty sub directories to the destination folder.
If you add /H option the the command would also copy hidden and system files to the destination folder.
If you are trying to overwrite an existing file then add the option /Y so that you will not be prompted for confirmation for overwriting the file.