Команды DOS. Справочное пособие

       

Копирование на устройства и с устройств


В источнике или приемнике вы можете указывать имя устройства. При копировании на устройство используйте параметр /B. Когда приемником является устройство (например, COM1 или LPT2), параметр /B приводит к тому, что MS-DOS копирует данные на устройство в двоичном режиме, в котором все символы, включая специальные (такие как CTRL+C, CTRL+S, CTRL+Z, и возврат каретки) копируются на устройство как данные. Отсутствие /B вызывает копирование данных на устройство в режиме ASCII. При этом перечисленные выше специальные символы вызывают при копировании специальные действия.

Если вы не задаете целевого файла, то MS-DOS создает копию с тем же именем, датой и временем создания, что и исходный файл, помещая новую копию в текущий каталог на текущем диске. Если исходный файл находится на текущем диске и в текущем каталоге, а целевой диск и файл не задаются, то команда COPY останавливается, и MS-DOS выводит сообщение:

     File cannot be copied onto itself     0 File(s) copied     (Файл невозможно скопировать сам в себя,     скопировано 0 файлов.)

Если MS-DOS не может проверить операцию записи, то она выводит сообщение об ошибке. Кроме того, параметр /V замедляет выполнение команды, поскольку MS-DOS должна проверять каждый записываемый на диск сектор.

Если MS-DOS не может проверить корректность операции записи, то на экран выводится сообщение об ошибке. Хотя при работе с командой COPY ошибки происходят редко, параметр /V позволяет вам проверить корректность записи важных данных. Однако этот параметр замедляет выполнение команды COPY поскольку MS-DOS должна проверить каждый записываемый на диск сектор.

Действие параметров /A или /B зависит от позиции в командной строке. Если они следуют за именем исходного файла, то COPY работает следующим образом. /A приводит к интерпретации файла как файла ASCII (текстовый файл) и копированию данных, предшествующих первому символу конца файла. COPY не копирует символ конца файла и остаток файла. Параметр /B приводит к копированию всего файла, включая символ конца файла.


Когда параметр /A или / B следует за именем целевого файла, COPY выполняет следующие действия. При задании /A в качестве последнего символа файла добавляется символ конца файла. Если указано /B, то символ конца файла не добавляется.

Если вы задаете более одного исходного файла, разделяя их символом +, то COPY комбинирует файлы, создавая один новый файл. При использовании в качестве исходных файлов трафаретных символов и задании в качестве целевого файла единственного имени, COPY комбинирует все файлы, имена которых соответствуют трафарету источника, и создает один файл с именем, заданным в качестве имени файла-приемника.

В любом случае COPY при отсутствии параметра /B предлагает комбинированный список файлов ASCII (не комбинируйте нетекстовые файлы без параметра /B, поскольку это может привести к их усечению).

Если имя целевого файла совпадает с именем одного из копируемых файлов (кроме первого), то исходное содержимое целевого файла теряется. При этом COPY выводит следующее сообщение:

     Content of destination lost before copy     (Перед копированием содержимое приемника теряется)

Если вы хотите присвоить файлу текущие дату и время, не модифицируя его, то задайте команду в следующем формате (запятые указывают на пропуск параметра приемника):

     copy /b source+,,

где source - исходный файл. Чтобы скопировать все файлы в подкаталогах, следует использовать команду XCOPY.

COPY не копирует файлы нулевой длины: такие файлы удаляются. Для копирования таких файлов используйте XCOPY.

Приведем некоторые примеры. Следующая команда копирует файл и обеспечивает включение в него символа конца файла:

     copy data1.doc data2.doc /a

Чтобы скопировать несколько файлов в один, перечислите в источнике любое число файлов (разделив их плюсом) и задайте имя результирующего файла:

     copy mon.txt + tue.txt + wen.txt tree.txt

При этом файлы текущего диска и каталога mon.txt, tue.txt и wen.txt объединяются и помещаются в файл tree.txt (также в текущем каталоге). Целевой файл будет иметь текущую дату и время. Если опустить имя этого файла, MS-DOS использует в качестве приемника первый файл из списка.

Команда copy *.doc total.doc комбинирует все файлы в текущем каталоге в один файл total.doc. Если вы хотите скомбинировать несколько двоичных файлов, укажите параметр /B, например:

     copy /b *.exe sup.exe

Это предотвращает интерпретацию CTRL+Z как конца файла (правда, такая команда не даст в результате выполняемого файла).

Следующая команда копирует то, что вы набираете с клавиатуры, в файл protoc.dat:

     copy con protoc.dat

Для завершения ввода нажмите CTRL+Z.


Содержание раздела