Команда COPY
Копирует в заданное место один или более файлов. Данную команду можно также использовать для комбинирования файлов. При копировании более одного файла DOS выводит на экран имя каждого копируемого файла.
COPY [/A /B] [/? /H] спецификация_1 устройство_1
[+спецификация]... [/A /B] спецификация_2 устройство_2
[/A] [/B] [/V] [/S] [/C] [/Z]
Параметры команды
Параметр | Описание |
/? или /H | Выводят справочный текст. |
/A | Файл интерпретируется как текстовый файл (ASCII). Если вы задаете параметр /A для спецификации исходного файла, то содержимое файла копируется целиком, исключая символ конца файла (Ctrl+Z). Символы после первого символа конца файла не копируется. Использование параметра /A в спецификации целевого файла добавляет Ctrl+Z в качестве последнего символа файла (что требуется некоторыми текстовыми процессорами). |
/B | Параметр /B, если он указывается в спецификации исходного файла, приводит к интерпретации файла как двоичного. Копируется весь файл независимо от символа Ctr+Z. Если /B указывается в спецификации целевого файла, то символ конца файла не добавляется. |
/V | Приводит к тому, что COPY проверяет точность копирования, сравнивая полученную копию с оригиналом. Из-за этого копирование с данным параметром занимает больше времени. |
/S | Указывает, что в копировании должны участвовать системные и скрытые файлы. |
/C | Перед копированием каждого файла запрашивает подтверждение. При копировании нескольких групп файлов запрашивает подтверждение перед копированием каждой группы (по первому имени исходного файла). |
/Z | Обнуляет старший бит каждого байта в целевом файле. Этот параметр не следует указывать для файлов ASCII. (Он предназначен для работы со старыми текстовыми редакторами.) |
Кроме копирования файлов в другое место на том же или другом диске эту команду можно также использовать для комбинирования файлов в один файл или создания файлов и передачи их на принтер.
"Спецификация_1" задает источник. Эти файлы должны обязательно задаваться (можно использовать трафаретные символы). "Спецификация_2" задает приемник. И в источнике, и в приемнике можно указывать полный маршрут, имя файла и расширение. Если приемник опущен, то копия создается в текущем каталоге заданного по умолчанию диска, а имя файла будет соответствовать имени исходного файла (сам в себя файл скопировать нельзя).
Если в качестве источника указаны трафаретные символы, то при копировании файлов выводятся их имена. Например, если вы наберете команду:
C>COPY *.* DOCUMENT
то все файлы из текущего каталога будут скопированы в каталог DOCUMENT. Однако, если такого каталога не существует, то все файлы будут скопированы в один файл с тем же именем. Если в качестве целевого файла задается только диск, то файл копируется на этот диск под своим именем. Если заданный в качестве приемника файл существует, то он затирается.
Для копирования каталогов и подкаталогов используется команда XCOPY. Параметры /A и /B не обязательны и необходимы только для комбинирования файлов ASCII и двоичных файлов.
В источнике или приемнике вы можете указывать имя устройства. При копировании на устройство используйте параметр /B. Когда приемником является устройство (например, COM1 или LPT2), параметр /B приводит к тому, что DOS копирует данные на устройство в двоичном режиме, в котором все символы, включая специальные (такие как CTRL+C, CTRL+S, CTRL+Z, и возврат каретки) копируются на устройство как данные. Отсутствие /B вызывает копирование данных на устройство в режиме ASCII. При этом перечисленные выше специальные символы вызывают при копировании специальные действия.
Чтобы скопировать файл на терминал или на принтер, используйте формат:
COPY имя_файла устройство
задав в качестве устройства CON или PRN.
Имена устройств
Устройство | Описание |
CON | Обозначает экран, если это целевое устройство, и клавиатуру, если исходное. |
LPTn | Обозначает принтеры (где n = 1, 2 или 3). |
PRN | Текущий принтер. |
NUL | Фиктивное устройство вывода. Обычно используется для тестирования программы. |
COMn | Обозначает последовательные порты (где n = 1, 2, 3 или 4). |
AUX | Обозначает последовательный порт 1 (COM1). |
Если вы не задаете целевого файла, то DOS создает копию с тем же именем, датой и временем создания, что и исходный файл, помещая новую копию в текущий каталог на текущем диске. Если исходный файл находится на текущем диске и в текущем каталоге, а целевой диск и файл не задаются, то команда COPY останавливается, и DOS выводит сообщение о невозможности копирования файла.
Если DOS не может проверить операцию записи, то она выводит сообщение об ошибке. Кроме того, параметр /V замедляет выполнение команды, поскольку DOS должна проверять каждый записываемый на диск сектор.
Если DOS не может проверить корректность операции записи, то на экран выводится сообщение об ошибке. Хотя при работе с командой COPY ошибки происходят редко, параметр /V позволяет вам проверить корректность записи важных данных. Однако этот параметр
замедляет выполнение команды COPY поскольку DOS должна проверить
каждый записываемый на диск сектор.
Приведем некоторые примеры. Следующая команда копирует файл и обеспечивает включение в него символа конца файла:
COPY data1.doc data2.doc /A
Чтобы скопировать несколько файлов в один, перечислите в источнике любое число файлов (разделив их плюсом) и задайте имя результирующего файла:
COPY mon.txt + tue.txt + wen.txt tree.txt
При этом файлы текущего диска и каталога mon.txt, tue.txt и wen.txt объединяются и помещаются в файл tree.txt (также в текущем каталоге). Целевой файл будет иметь текущую дату и время. Если опустить имя этого файла, DOS использует в качестве приемника первый файл из списка.
Команда COPY *.doc total.doc комбинирует все файлы в текущем каталоге в один файл total.doc. Если вы хотите скомбинировать несколько двоичных файлов, укажите параметр /B, например:
COPY /B *.exe sup.exe
Это предотвращает интерпретацию CTRL+Z как конца файла (правда, такая команда не даст в результате выполняемого файла).
Следующая команда копирует то, что вы набираете с клавиатуры, в файл protoc.dat:
COPY con protoc.dat
Для завершения ввода нажмите CTRL+Z.