Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Команды ДОС.docx
Скачиваний:
16
Добавлен:
13.11.2019
Размер:
114.14 Кб
Скачать

5.4. Команды манипулирования файлами.

Команда ERASE (DEL)

Назначение: удаление файлов.

Тип: внутренняя.

Синтаксис:

ERASE {pattern | dir}

или

DEL {pattern | dir}

Комментарии. Если в командной строке задан pattern, то удаляются все сопоставимые с образцом файлы. В случае указания dir удаляются все содержащиеся в каталоге файлы, но не подкаталоги и не содержимое последних. Следовательно, dir здесь считается сокращением (синонимом) dir\*.*.

При указании на удаление всех файлов в каталоге (независимо от способа) на экране появится сообщение:

All files directory will be deleted!

Are you sure (Y/N)?

(Все файлы в каталоге будут удалены!

Вы уверены (Y- да/N - нет)?)

При утвердительном ответе (Y) выполнение команды продолжается, а при отрицательном (N) – отменяется.

Замечания:

- DOS не содержит средств восстановления удаленных файлов. Поэтому данную команду следует использовать аккуратно;

- файлы с атрибутами R, H и/или S данной командой не удаляются;

- технически при удалении файла изменяются только первый символ его имени в соответствующем элементе каталоге и связанные с файлом элементы FAT, что обеспечивает возможность выделения элемента каталога и дискового пространства, прежде задействованного файлом, для размещения других файлов. Информация же, содержащаяся в файле, физически не стирается. Поэтому если файл занимал непрерывную область дискового пространства и после его удаления задействованная им ранее дисковая память еще не была выделена другому файлу, то имеется принципиальная возможность восстановления удаленного файла, которая и реализуется многими утилитами.

Примеры:

1) DEL A:*.PAS – удалить все файлы с расширением PAS из текущего каталога диска в приводе А;

2) DEL C:\DBASE – если C:\DBASE является каталогом, то удалить все содержащиеся в нем файлы (и оставить необработанными подкаталоги); иначе – удалить только файл C:\DBASE;

3) DEL - удалить все файлы (но не каталоги) в рабочем каталоге.

DOS 4.0. Для повышения безопасности команды ERASE можно использовать переключатель /Р. При этом перед удалением каждого файла из заданного множества на экране дисплея появляется сообщение:

File, Delete (Y/N)?

(Удалить file (Y- да/N- нет)?)

При ответе Y указанный файл будет удален; иначе он останется в целости и сохранности.

Команда RENAME (REN)

Назначение: переименование файлов.

Тип: внутренняя.

Синтаксис:

RENAME pattern compname

или

REN pattern compname

Комментарии. Множество переименованных файлов выделяется по образцу pattern. Затем каждый файл из этого множества переименовывается таким образом, чтобы его новое составное имя было сопоставимо с образцом compname и одновременно являлось наиболее близким к старому имени. Другими словами, вместо символов-заменителей в compname подставляются соответствующие фрагменты старого имени файла. При этом если символ-заменитель ? находится на i-й позиции поля имени (расширения) в compname, то вместо него подставляется i-й символ имени (расширения) переименовываемого файла. Когда поле имени (расширения) переименовываемого файла содержит менее i символов, символ-заменитель ? ничем не заменяется. Данное правило справедливо для всех команд манипулирования файлами.

Замечания:

- команда RENAME не изменяет размещения файлов, поэтому любая спецификация dir во втором аргументе игнорируется;

- присваиваемое файлу новое имя не должно совпадать с именем уже существующего в том же каталоге файла, иначе команда не выполняется;

- файлы с атрибутами H и/или S переименовать не удастся. Остальные атрибуты командой RENAME сохраняются в неизменном виде.

Примеры:

1) REN \*.TXT *.DOC –изменить расширение TXT на DOC у всех файлов в корневом каталоге текущего диска;

2) REN CURRENT.DAT *.OLD – изменить на OLD расширение файла CURRENT.DAT, содержащегося в рабочем каталоге

3) КУТ 02.TXT 1?.* - переименовать файл 02.TXT в файл 12.TXT.

Команда ATTRIB

Назначение: изменение и отображение атрибутов файлов.

Тип: внешняя.

Синтаксис:

ATTRIB [+R| -R] [+A| -A] pattern [/S]

Комментарии. Если в командной строке задан аргумент +х, то для всех файлов, сопоставленных с образцом в pattern, устанавливается атрибут х. В случае указания аргумента –х для выделенных по образцу в pattern файлов атрибут х сбрасывается. Если файл имеет атрибут х (не имеет атрибута х), то задание +х (-х) для этого файла никакого влияния на него не оказывает.

Указание в команде только pattern обеспечивает выдачу на экран текущих атрибутов выделенных файлов без их изменения.

Переключатель /S распространяет действие команды на подходящие под шаблон файлы в каталогах, подчиненных выделенному по pattern (конечно, в выделенном каталоге файлы также обрабатываются). Следовательно, /S задает обработку файлов в целом поддереве файловой структуры по одному и тому же критерию.

Замечания:

- атрибут А позволяет управлять командами BACKUP и XCOPY, обеспечивающими резервное копирование файлов;

- установка атрибута R затрудняет удаление и модификацию файла, что удобно делать для файлов, совместно используемых в сети. А также для файлов с ценной информацией;

- команда ATTRIB не позволяет устанавливать и сбрасывать атрибуты H и S, а также просматривать атрибуты таких файлов;

- команду ATTRIB без атрибутов, но с переключателем /S, можно использовать для выдачи на экран всех файлов в файловой структуре или ее части, сопоставимых с заданным образцом.

Примеры:

1) ATTRIB +R C:\USER\XYZ.DAT – установить для указанного файла атрибут R;

2) ATTRIB –R +A *.TXT – установить атрибут А и сбросить атрибут R у всех файлов с расширением TXT в рабочем каталоге;

3) ATTRIB +A C:\*.* /S – установить атрибут А у всех файлов на диске в приводе С;

4) ATTRIB *.* - отобразить атрибуты всех файлов, содержащихся в рабочем каталоге;

5) ATTRIB +A C:\*.TXT /S – установить атрибут А у всех файлов с расширением TXT на диске в приводе С.

Команда COMP

Назначение: сравнение содержимого файлов.

Тип: внешняя.

Синтаксис:

COMP [dir1 | pattern1] [dir2 | pattern2]

Комментарии. Аргументы в командной строке задают два множества файлов, содержимое которых будет попарно сравниваться.

После ввода команды по первому аргументу выделяется исходное множество файлов, а по второму – целевое. Затем содержимое каждого файла из исходного множества сравнивается с содержимым того файла из целевого множества, составное имя которого получается подстановкой в pattern2 вместо имеющихся в нем символов-заменителей соответствующих фрагментов составного имени файла из исходного множества. Файлы из исходного множества выбираются в том порядке, в каком они зарегистрированы в каталоге. Команда COMP сообщает о том, содержимое каких файлов она в данный момент сравнивает. Результаты сравнения содержимого пар файлов также выводятся на экран дисплея. Сравнение файлов завершается по исчерпании исходного множества. Поэтому число элементов в целевом множестве может превышать количество элементов в исходном множестве, но не наоборот.

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

Enter primary filename

(Введите первичное имя файла)

Второй аргумент должен быть задан в ответ на запрос

Enter 2nd filename or drive id

(Введите второе имя файла или идентификатор привода)

Задание в качестве аргумента спецификации pattern приводит к тому, что для сравнения выбираются те файлы, составные имена которых сопоставимы с шаблоном. Аргумент dir считается сокращенным для dir\*.*.

При сравнении содержимого каждой пары файлов команда COMP сначала проверяет равенство их длин. Если размеры файлов различны, то появляется сообщение:

Files are different sizes

(Файлы различаются по размеру)

и сравнение не производится

В ходе работы COMP содержимое файлов сравнивается побайтно, а при несовпадении байтов в файлах на экран выводится сообщение нижеприведенного вида:

Compare error at OFFSET xxxxxxxx

(Ошибка сравнения при смещении xxxxxxxx)

FILE1 = yy

FILE2 = zz

Здесь x,y и z – шестнадцатеричные цифры, FILE1 – ссылка на исходный файл, FILE2 – на целевой файл. Смещение указывает номер байта от начала файла, на котором обнаружено несовпадение (нумерация начинается с нуля). Для каждого файла сообщается содержимое не совпавшего байта (числа xx и yy).

Сравнение двух файлов на этом не завершается, но после десяти несовпадений оно все же прекращается с выдачейт сообщения:

10 Mismatches – ending compare

(10 несовпадений – завершение сравнения)

При полном совпадении содержимого двух файлов на экран выводится сообщение:

Files compare OK

(Файлы сравнились успешно)

Если маркеры EOF в сравниваемых файлах не найдены, то командой в процессе работы будет выдано сообщение:

EOF mark not found

(Маркер EOF не найден),

но это не ошибка, а возможная информация к размышлению, т.к. двоичные файлы и не должны иметь этих маркеров.

После успешного или неуспешного завершения сравнения очередной пары файлов из двух множеств команда COMP переходит к сравнению содержимого следующей пары.

По исчерпании исходного множества файлов появляется сообщение:

Compare more files (Y/N)?

(Еще сравнивать файлы (Y- да/N- нет)?)

При ответе Y команда COMP предлагает задать с клавиатуры два новых множества для сравнения, и ее выполнение после ответов будет продолжено. В противном случае выполнение команды завершается.

Замечания:

- команда COMP сравнивает только содержимое файлов и не учитывает их физическое размещение на дисках;

- сравниваемые множества файлов могут содержаться в различных каталогах и на различных дисках;

- содержимое каталогов данной командой не сравнивается;

- сравнение файла с самим собой обеспечивает проверку считываемости.

Примеры:

1) COMP C:\DATA\P1.DAT A:\DATA\P2.DAT – сравнить содержимое указанных файлов;

2) COMP C:*.ASM B:*.BAK- сравнить файлы *.ASM, содержащиеся в текущем каталоге диска в приводе С, с одноименными, но с расширением BAK, файлами из текущего каталога диска в приводе В;

3) COMP C:*.ASM B:\PROGRAMS - сравнить файлы *.ASM, содержащиеся в текущем каталоге диска в приводе С, с одноименными файлами из каталога \PROGRAMS диска в приводе В;

4) COMP – сравнить файлы, которые будут заданы в ответ на запросы команды;

5) COMP C:*.ASM – сравнить файлы *.ASM из текущего каталога диска в приводе С с файлами, которые будут заданы в ответ на запросы команды;

Команда COPY

Назначение: копирование и сцепление (конкатенация) файлов.

Тип: внутренняя.

Синтаксис.

Для копирования файлов:

COPY {dir1| pattern1} [/V][/A|/B] [dir2| pattern2] [/V][/A|/B]

Для конкатенации файлов:

COPY {pattern1 |dir1} [/V] [/A|/B]

[+ {pattern2 |dir2} [/V] [/A|/B]…

{patternN| dirN} [/V] [/A|/B]

Комментарии. Формат команды для копирования файлов является частным случаем формата для конкатенации файлов.

В синтаксисе для копирования файлов первый аргумент определяет, какие файлы-оригиналы подлежат дублированию, и поэтому называется исходным, а второй – место размещения и составные имена будущих файлов-дубликатов, в связи с чем называется целевым.

Как и в некоторых других командах, задание в качестве аргумента спецификации dir эквивалентно указанию dir\*.*.

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

Копирование файла «на себя» не допускается. При задании такого режима выполнения команды COPY на экран выводится сообщение:

File cannot be copied onto itself

0 File(s) copied

(Файл не может быть скопирован на себя.

Скопировано 0 файлов)

и копирование не производится.

При дублировании файла дата и время его создания (последней модификации) не изменяются.

Режим конкатенации файлов используется для объединения их содержимого в единый файл (или несколько файлов). Это полезно главным образом для текстовых файлов, когда из их последовательности формируется единый документ. Данный режим можно использовать и для добавления фрагментов текста в конец существующего файла.

В режиме конкатенации множества сцепляемых файлов задаются в командной строке спецификациями образцов файлов (pattern) и/или спецификациями каталогов (dir), между которыми ставится символ +, возможно, ограниченный слева и справа последовательностями пробелов. Последний аргумент, которому не предшествует +, определяет местоположение и составные имена файлов, которые будут содержать результаты конкатенации. Таким образом, в режиме конкатенации может быть несколько исходных аргументов (но не менее одного) и только один – целевой. В случае задания только одного исходного аргумента один из возможных режимов (копирования или конкатенации) выбирается в соответствии с видом аргументов и это неоднозначности не вызывает. Как и в режиме копирования, в режиме конкатенации dir является сокращением для dir\*.*. Файлы, выделенные по исходным аргументам, будем называть исходными, а сформированные по целевому аргументу – результирующими.

Существует несколько вариантов реализации конкатенации в зависимости от того, какие аргументы и каким образом определены. В связи с этим рассмотрим три случая:

1) все исходные аргументы и целевой аргумент заданы шаблонами (или шаблоны подразумеваются);

2) по крайней мере, одним из исходных аргументов задан единственный файл, а целевой аргумент является шаблоном (или шаблон подразумевается);

3) в качестве целевого аргумента указан единственный файл.

В первом случае выполнение команды COPY сводится в определенном смысле к реализации последовательности «подкоманд» COPY. Аргументы каждой такой «подкоманды» аналогичны аргументам исходной команды, но конкретизированы вплоть до указания на единственные файлы. Конкретизация аргументов в командной строке команды COPY производится по элементам множества составных имен файлов, определяемого первым исходным аргументом. По составному имени каждого файла из этого множества осуществляется уточнением других аргументов путем подстановки вместо символов-заменителей в них соответствующих фрагментов этого составного имени.

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

В третьем случае содержимое исходных файлов последовательно сцепляется, а результат помещается в результирующий файл. Порядок конкатенации файлов определяется порядком задания исходных аргументов и вхождения исходных файлов в каталог. Сначала объединяются файлы, выделенные по первому исходному аргументу в порядке их вхождения в соответствующий каталог, затем – файлы, выделенные по второму исходному аргументу в том же порядке и т.д.

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

COPY file1 + file 2 file 1

или

COPY file1 + file2

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

Content of distination lost before copy

(Содержимое адресата (результирующего файла) потеряно до копирования)

Оно говорит о том, что файл открыт для записи (создан заново) и поэтому нет возможности прочитать его старое содержимое для повторной записи. Выполнение команды COPY в таких случаях не прекращается, но содержимое каждого такого исходного файла в результирующий файл не переносится (тем самым теряется его первоначальное содержимое). Следовательно, обработка исходного и результирующего файлов с одинаковыми именами в «подкоманде» COPY осуществляется не всегда корректно.

Если один и тот же файл выступает в роли первого и целевого (пусть даже неявно заданного) аргумента, а также сопоставим с каким-либо еще аргументом, то приведенное выше сообщение о потере содержимого адресата выдается, но реально содержимое не теряется. Объяснение указанного факта состоит в том, что файл здесь открывается не для записи, а для добавления в конец. Данная ситуация потенциально опасная и ее лучше избегать.

Для файлов, создаваемых или обновляемых в режиме конкатенации, устанавливаются текущие дата и время создания.

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

Выполняемые командой действия отображаются на экране дисплея путем выдачи составных имен обрабатываемых файлов.

После завершения копирования или конкатенации файлов на экране дисплея отображается сообщение

n File(s) copied

(Скопировано n файлов)

где n – число созданных файлов.

В командной строке можно использовать следующие переключатели, определяющие дополнительные режимы выполнения команды COPY и уточняющие ее действие:

/V – контролировать правильность записи информации на диск путем проверки считываемости;

/A – осуществлять копирование (конкатенацию) в текстовом режиме;

/B – осуществлять копирование (конкатенацию) в двоичном режиме.

Переключатель /V независимо от места, где он указан в команде, действует на всю командную строку (поэтому достаточно задать его один раз). Переключатель /A (/B) действует на предшествующий и все последующие аргументы до начала области действия переключателя /B (/A). Эти два переключателя не совместимы (для одного и того же, а не для разных аргументов команды).

При применении к файлам-оригиналам (исходным файлам) переключатели имеют следующий смысл:

/А – данные из файла копируются (считываются) вплоть до первого маркера EOF, но не включая его. Остаток файла не копируется ( не считывается). При отсутствии маркера EOF или если файл имеет большую длину, чем указано в каталоге, команда COPY руководствуется сведениями о длине из соответствующего файлу элемента каталога;

/В – файл копируется (считывается) полностью в соответствии со значением в поле длины файла из элемента каталога.

Для файлов-дубликатов (результирующих файлов) эти переключатели интерпретируются:

/А – после записи на диск дубликата (результирующего файла) в качестве последнего добавить маркер EOF;

/В – после записи файла на диск маркер EOF не добавлять.

Таким образом, переключатель /А используется главным образом для обработки текстовых, а /В – двоичных файлов.

По умолчанию в режиме копирования действует переключатель /В, а в режиме конкатенации файлов – переключатель /А.

Замечания:

- наряду с копированием файлов она поддерживает и их одновременное переименование;

- все заданные в режиме копирования исходными аргументами файлы реально дублируются, а не повторно регистрируются в других каталогах;

- при конкатенации (копировании) файлов оригиналы (исходные файлы) сохраняются без изменений;

- При копировании файлов или их конкатенации (за исключением добавления данных в конец файла) в качестве дубликата (результирующего файла) указан уже существующий файл, то он перезаписывается без всякого предупреждения; однако файлы с атрибутом R не замещаются;

- Файлы с атрибутом H и/или S командой COPY не обрабатываются

- Команда COPY не обеспечивает копирования поддерева файловой структуры. Для реализации этого служит команда XCOPY.

Примеры:

1) COPY A:\MYFILE.DAT B:MYFILE.BAK – скопировать файл MYFILE.DAT из корневого каталога диска в приводе А в текущий каталог диска в приводе В и присвоить дубликату имя MYFILE.BAK;

2) COPY A:\MYFILE.DAT B:*.BAK – то же;

3) COPY A:\MYFILE.DAT – скопировать указанный файл в рабочий каталог (без переименования);

4) COPY MYFILE.DAT B: - скопировать указанный файл из рабочего каталога в текущий каталог диска в накопителе В (без переименования);

5) COPY MYFILE.DAT B:\DATA - скопировать указанный файл из рабочего каталога в каталог \DATA диска в накопителе В (без переименования);

6) COPY A:*.BAS C: - скопировать все файлы с расширением BAS из текущего каталога диска в приводе А в текущий каталог диска в приводе С;

7) COPY A:*.BAS C:*.BAK – то же, но у дубликатов меняется расширение с DAS на BAK;

8) COPY A: B: - скопировать все файлы из текущего каталога диска в приводе А в текущий каталог диска в приводе В;

9) COPY MAIN.PAS + P1.PAS +P2.PAS MYPROG.PAS – сцепить в указанном порядке содержимое файлов MAIN.PAS, P1.PAS, P2.PAS с записью результата в файл MYPROG.PAS (все файлы обрабатываются в рабочем каталоге);

10) COPY *.TXT + *.REF *.DOC – сцепить каждый файл с расширением TXT с одноименным файлом, но имеющих расширение REF, и записать результат в файл с тем же именем и расширением DOC (все файлы обрабатываются в рабочем каталоге);

11) COPY *.TXT + R.REF *.DOC – найти в рабочем каталоге первый TXT –файл, присоединить к нему содержимое файла R.REF и поместить результат в файл с тем же именем, что и TXT –файл, но с расширением DOC;

12) COPY R.TXT + *.REF R.DOC – присоединить к файлу R.TXT содержимое всех REF-файлов из рабочего каталога и поместить результат в файл R.DOC;

13) COPY *.TXT COMBIN.DOC – объединить все файлы с расширением TXT в единый файл COMBIN.DOC; очередность обработки исходных файлов зависит от порядка их вхождения в рабочий каталог;

14) COPY *.TXT + R.REF COMBIN.DOC – то же, но в конец файла COMBIN.DOC дополнительно записывается содержимое файла R.REF;

15) COPY *.TXT + *.REF COMBIN.DOC – сцепить последовательно все файлы с расширением TXT, присоединить к ним содержимое всех файлов с расширением REF и поместить результат в файл COMBIN.DOC; порядок выбора TXT и REF -файлов зависит от последовательности их вхождения в рабочий каталог;

16) COPY A:. + B:. C: - сцепить попарно все файлы из текущего каталога диска в приводе А с одноименными файлами из не текущего каталога диска в приводе В и поместить результат в текущий каталог диска в приводе С под теми же именами;

17) COPY *.TXT ALL.TXT – сцепить содержимое всех файлов с расширением TXT и записать результат в файл ALL.TXT; если файл ALL.TXT существовал, то его первоначальное содержимое будет потеряно и не скопируется в новую версию файла;

18) COPY MEMO.DOC /A LETTER.DOC – скопировать содержимое файла MEMO.DOC в файл LETTER.DOC в текстовом режиме (/А действует на оба аргумента);

19) COPY F1.TXT /A F2.TXT /B – скопировать содержимое файла F1.TXT в файл F2.TXT с отсечением маркера EOF, если он в первом файле имеется;

20) COPY F1.TXT /A F2.TXT - скопировать содержимое файла F1.TXT в файл F2.TXT с тем, чтобы зарегистрированную длину файла привести в соответствие с реальной;

21) COPY AUTOEXEC.BAT + CON – дополнить файл AUTOEXEC.BAT информацией, введенной с клавиатуры.

Команда XCOPY

Назначение: копирование файлов и подкаталогов.

Тип: внешняя.

Синтаксис:

XCOPY [dir1 | pattern1] [dir2 | pattern2] [/A] [/D:date] [/E][/M][/P][/S][/V][/W]

Комментарии. Данная команда (ее имя – аббревиатура от extended COPY) является расширенным вариантом команды COPY в режиме копирования и дополнительно обеспечивает:

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

2) копирование поддеревьев файловой структуры.

Кроме того, XCOPY использует для своей работы всю свободную оперативную память и поэтому работает гораздо быстрее

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

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

Если в качестве аргумента указан каталог dir, а не pattern, то предполагается спецификация dir\*.* (все файлы в каталоге).

Копированию подлежат те файлы в выделенном по исходному аргументу каталоге, составные имена которых сопоставляются с заданным образцом. Каждый дубликат при этом размещается в выделенном по целевому аргументу каталоге и ему присваивается составное имя, полученное путем подстановки вместо символов-заменителей целевого аргумента соответствующих фрагментов составного имени файла-оригинала. В частном случае (если в целевом аргументе указано или предполагается *.*) имена файлов сохраняются.

Правила задания аргументов в этой команде аналогичны правилам задания аргументов в команде COPY.

Команда XCOPY в отличие от команды COPY может создавать каталоги, она не всегда в состоянии однозначно интерпретирует свои аргументы. В таких случаях пользователю задается вопрос. Например, при задании в качестве целевого аргумента спецификации без символов-заменителей не всегда можно определить, что же в конечном счет требуется пользователю: поместить дубликат в указанный файл (естественно, создав его) или рассматривать эту спецификацию как каталог, в который требуется скопировать файл. Команда XCOPY принимает в данной ситуации однозначное решение, если целевой аргумент указывает на существующий каталог (файл копируется в него с сохранением имени). В противном же случае выдается сообщение:

Does string specify a file name

Or directory name on the target

(F = file D = directory)?

(Задает ли string в (целевом аргументе) имя файла или имя каталога)

(F = файл D = каталог)?

Пользователю следует ответить F или D по своему усмотрению. При ответе D создается новый каталог, и в нем будет размещен дубликат. В случае ответа F осуществляется копирование файла с переименованием.

Факультативные переключатели в команде XCOPY имеют следующий смысл:

/А - копировать из выделенных по шаблону только те файлы, которые имеют атрибут А. При этом атрибуты файлов-оригиналов не модифицируются. Переключатель /А несовместим с /М;

/М - то же, но после копирования атрибут А у оригиналов сбрасывается. Этот переключатель несовместим с /А;

/D:date – копировать из выделенных по шаблону только созданные не раньше указанной даты (date) файлы;

/S - копировать не только заданные исходным аргументом файлы, но и файлы во всех подчиненных выделенному по pattern каталогах с учетом ограничений, накладываемых шаблоном и переключателями. При этом структура поддеревьев воспроизводится полностью, за исключением пустых каталогов (последние отбрасываются);

/Е - копировать и пустые подкаталоги. Этот переключатель используется только совместно с /S;

/Р – запрашивает у пользователя подтверждение на копирование каждого выделенного файла (Y/N);

/V – контролировать правильность записи информации на диск путем проверки считываемости;

/W – сделать в начале выполнения команды паузу с выдачей сообщения «Press any key when ready to start copying files» («Нажмите любую клавишу при готовности начать копирование файлов»). Пользователь может поступить в соответствии с предписанием для продолжения выполнения команды или нажать комбинацию клавиш Ctrl-Break для ее завершения.

Переключатель /D совместим с переключателем /А (/М), и оба они действуют в качестве дополнительного ограничителя множества файлов-оригиналов.

Сообщения, выдаваемые на экран в процессе выполнения XCOPY, аналогичны сообщениям, отображаемым командой COPY.

Команда XCOPY генерирует следующие коды возврата:

0- копирование прошло без ошибок;

1– для копирования не найдено ни одного файла;

2– выполнение команды принудительно завершено пользователем путем нажатия комбинации клавиш Ctrl-Break;

4 - ошибка инициализации (недостаточно внешней памяти для выполнения команды, неправильный синтаксис команды или заданы аргументы, не соответствующие реальной файловой структуре и конфигурации оборудования);

5 - критическая ошибка ввода-вывода, на которую пользователь прореагировал ответом А.

Замечания:

- файлы-оригиналы и каталоги-оригиналы сохраняются без каких-либо изменений;

- при копировании в существующие файлы, не имеющие атрибута R, они заменяются заданными в команде оригиналами (т.е. уничтожаются и создаются заново); если же атрибут R установлен, то выдается сообщение «Access denied» («Доступ отвергнут») и копирование не производится. Копирование же поддерева файловой структуры сопровождается не заменой, а пополнением содержимого каталогов, возможно, уже существующего поддерева, на которое указывает целевой аргумент. В данном случае никакой подкаталог не заменяет даже одинаково размещенный и так же поименованный каталог. Вместо этого копируются только файлы и добавляются соответствующие им элементы подкаталогов. Отсутствующие каталоги, конечно, создаются. Такая техника позволяет сохранить уже созданное поддерево каталога и содержащиеся в нем файлы, если при дублировании не возникает коллизий составных имен файлов;

- файлы с атрибутами H и/или S командой XCOPYне обрабатываются, а при копировании файлов с атрибутом R последний не переносится. Для файлов-дубликатов всегда устанавливается атрибут А;

- дата и время создания файлов при копировании не изменяются;

- рабочий каталог в исходном аргументе удобно задавать точкой;

- символ-заменитель * может использовать не только для задания множества файлов, но и для упрощения задания единственного файла в качестве целевого аргумента;

- задание переключателя /V замедляет выполнение команды. Но придает уверенность при дублировании ценной информации. Альтернативой переключателя /V является команда VERIFY, которая включает и выключает контроль записи на диск для всех последующих операций;

- команда XCOPY в случае подходящего (не фрагментированного) размещения информации на целевом диске обеспечивает дефрагментацию файлов;

- дублирование файлов с защищенных от копирования дискет к успеху не приводит;

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

- циклическое копирование выполнять запрещается.

Примеры:

1) XCOPY *.DAT B: - скопировать все файлы с расширением DAT из рабочего каталога в текущий каталог диска в приводе В;

2) XCOPY A: - скопировать все файлы из текущего каталога диска в накопителе А в рабочий каталог;

3) XCOPY *.BAS *.BAK – скопировать все файлы с расширением BAS из рабочего каталога в тот же каталог с одновременным изменением расширений на BAK;

4) XCOPY *.* А:\ - скопировать все файлы из рабочего каталога в корневой каталог диска в приводе А;

5) XCOPY А:\ В:\ /S/E – скопировать содержимое диска в приводе А на диск в приводе В. Если последний пуст, а первый не содержит файлов с атрибутами H и S, то диск в приводе В станет логической копией диска в приводе А. В противном случае файловая структура целевого диска пополнится файловой структурой исходного, если не принимать во внимание скрытые и системные файлы;

6) XCOPY C:\*.DAT A:\ /S – скопировать все файлы с расширением DAT с диска в приводе С на диск в приводе А с сохранением их размещения в файловой структуре;

7) XCOPY C:\ A:\ /S/M – скопировать все файлы, которые были модифицированы или созданы после последнего выполнения такой же команды, сохраняя их размещение в файловой структуре, с диска в приводе С на диске в приводе А;

8) XCOPY C:\LOTUS /D:10-22-04 - скопировать файлы из каталога \LOTUS диска в приводе С, созданные не раньше 22.10.04 г., в рабочий каталог;

9) XCOPY C:\LOTUS /А - то же, но копируются только файлы, имеющие атрибут А, независимо от даты их создания;

10) XCOPY C:\LOTUS /А /D:10-22-04 – скопировать из каталога \LOTUS диска в приводе С файлы, созданные не раньше 22.10.04 г. и имеющие атрибут А, в рабочий каталог;

11) XCOPY А:\*.EXE B:\ /S/E - скопировать файловую структуру диска в приводе А с учетом только файлов с расширением EXE и всех (в том числе пустых) каталогов на диск в приводе B. Корнем дубликата будет корневой каталог этого диска.

Команда REPLACE

Назначение: копирование файлов с заменой или без замены существующих файлов.

Тип: внешняя.

Синтаксис:

REPLACE pattern [dir] [/A] [/P] [/R] [/S] [/W]

Комментарии. REPLACE предоставляет пользователю дополнительные по сравнению с командами COPY и XCOPY возможности по копированию файлов.

Спецификация pattern задает множество файлов, подлежащих копированию, а dir –каталог, в который требуется поместить дубликаты. При этом составные имена дубликатов всегда будут совпадать с составными именами файлов-оригиналов. Первый аргумент (pattern), как обычно, назовем исходным, а второй (dir) – целевым. Если целевой аргумент не задан, то подразумевается рабочий каталог.

Без переключателей команда REPLACE осуществляет замену существующих в целевом каталоге файлов одноименными файлами из множества, выделенного по исходному аргументу. Таким образом, копируются не все выделенные по pattern файлы, а только те из них, которые существуют в целевом каталоге.

В командной строке допустимы следующие переключатели:

/S - осуществить поиск одноименных выделенным по pattern файлов во всем поддереве файловой структуры с корнем dir и найденные файлы заменить соответствующими файлами-оригиналами путем копирования последних. Ненайденные по целевому аргументу файлы не дублируются. Поддеревья, файловой структуры, доступные по исходному аргументу, в глубину при поиске исходных файлов не просматриваются. Этот переключатель несовместим с /А;

/А - дополнить содержимое dir теми файлами из выделенных по pattern, составные имена которых не зарегистрированы в dir (т.е. проинвентиризировать действие команды). В результате этого копируются только новые для dir файлы. Переключатель /А несовместим с /S и отменяет действие /R.

/R - обеспечить возможность замены не только файлов без атрибута R, но и с таким атрибутом. Этот переключатель не имеет смысла указывать совместно с /А;

/Р - запрашивать у пользователя подтверждение на запись каждого файла на диск по целевому аргументу (для замены или добавления) путем выдачи сообщения «Replace file (Y/N)?»;

/W - в начале выполнения команды сделать паузу с выдачей на экран дисплея сообщения «Press any key when ready» («Затем нажмите любую клавишу») или «Press any key to continue» (« Нажмите любую клавишу для продолжения»).

По завершении выполнения команды на экран дисплея выводится сообщение:

n file(s) added/replaced

(n файл(ов) добавлено/заменено)

или

no files added/replaced

(Никакие файлы не добавлены/ не заменены)

Команда REPLACE вырабатывает следующие коды возврата:

0 - успешное завершение;

2 - файл не найден;

3 - маршрут не найден;

5 - доступ запрещен (попытка замены файла с атрибутом R без переключателя /R);

8 - недостаточно памяти для выполнения команды;

11 - ошибка в командной строке;

15 - ошибочно задан привод.

Замечания:

- команду REPLACE целесообразно использовать для замены старой версии программного продукта новой версией, а также для ускорения добавления отсутствующих файлов;

- спецификация каталога в качестве исходного аргумента не допускается;

- файлы с атрибутами H и/или S командой REPLACE не обрабатываются;

- атрибут /R в дубликат не переносится;

- у каждого дубликата всегда вводится атрибут /А;

- никакие каталоги командой REPLACE не создаются;

- переключатель /W обеспечивает удобство работы на ПЭВМ, не оборудованной жестким диском.

Примеры:

1) REPLACE *.* D: - заменить существующие в текущем каталоге диска в приводе D файлы одноименными файлами из рабочего каталога;

2) REPLACE A:\*.* C:\ /S - заменить каждый файл в любом каталоге диска в приводе С, совпадающий с одним из файлов в корневом каталоге диска в приводе А, последним;

3) REPLACE A:\*.PRD C:\MSTOOLS /A - дополнить каталог C:\MSTOOLS PRD-файлами из корневого каталога диска в приводе А.

DOS 4.0. Допустим дополнительный переключатель /U, разрешающий замену только в том случае, когда файл-оригинал создан позже (по дате и времени) подлежащего замене одноименного файла.

Команда TYPE

Назначение: отображение содержимого файла.

Тип: внутренняя.

Синтаксис:

TYPE file

Комментарии. Эта команда обеспечивает беглый просмотр на экране дисплея содержимого текстового файла, спецификация которого в качестве аргумента.

Замечания:

■ задание шаблона в аргументе команды недоступно. Для вывода на экран содержимого множества файлов можно использовать команду COPY с целевым аргументом CON;

■ не следует указывать в команде TYPE двоичный файл;

■ файлы с атрибутами H и/или S команде TYPE недоступны;

■ если размер файла велик, вследствие чего все его содержимое не помещается на экране, то данные выдаются сплошным потоком без остановки. Для приостановки прокрутки изображения можно использовать клавишу Pause или фильтр MORE, а для продолжения – любую клавишу;

■ для печати командой TYPE содержимого файла на принтере можно задать перенаправление стандартного вывода или нажать перед завершением ввода команды комбинацию клавиш Ctrl-PrtSc, но лучше применить команду PRINT;

Примеры:

1) TYPE MYFILE.TXT – вывести содержимое файла MYFILE.TXT из рабочего каталога на экран дисплея;

2) TYPE MYFILE.TXT ● Ctrl-PrtSc ● ●Enter● – то же, но файл дополнительно печатается на принтере (Ctrl-PrtSc целесообразно нажать перед завершением ввода команды, а не до ее набора, чтобы сама команда не была отпечатана).

Команда PRINT

Назначение: печать файлов на принтере.

Тип: внешняя.

Синтаксис.

При первом вызове:

PRINT [/D:устройство] [/B:b] /Q:q] [/S:s] [/M:m] [/U:u] [/T| pattern [/P] [/C]]…

При последующих вызовах:

PRINT [/T| pattern [/P] [/C] ]…

Комментарии. Данная команда обеспечивает вывод содержимого выделенных по pattern (обычно текстовых) файлов на принтер в фоновом режиме. Это означает, что в ходе печати на ПЭВМ может выполняться и другая (основная) задача. Разделение ресурсов компьютера между основной и фоновой задачами осуществляется DOS в соответствии со значениями, заданными в переключателях /S, /M и /U.

Команду PRINT можно использовать только в том случае, когда устройство вывода (принтер или графопостроитель) подключено к одному из адаптеров параллельного или последовательного интерфейса.

При первом после загрузки DOS выполнении команды PRINT можно установить параметры печати для оптимизации этого процесса в зависимости от конфигурации оборудования и потребностей пользователя. Последующие вызовы данной команды обеспечивают только управление очередью печати.

Для установки параметров печати используются следующие факультативные переключатели (все они, за исключением /D, имеют значения по умолчанию):

/D:устройство – задает имя посимвольного устройства вывода. Допустимыми значениями являются имена адаптеров параллельного интерфейса LPT1 (PRN), LPT2 и LPT3, а также имена адаптеров последовательного интерфейса COM1, COM2, COM3 и COM4. Если Вы специфицировали /D, то он должен быть первым переключателем в командной строке;

/B:b - устанавливает равным b (в байтах) размер внутреннего буфера, в котором хранится фрагмент печатаемого в данный момент файла. Целесообразно задавать число кратное 512 (размеру сектора). Допустимые значения лежат в диапазоне от 512 до 1634. По умолчанию принимается 512. Увеличение размера буфера ведет к ускорению печати, но к уменьшению объема доступной основной памяти.

/Q:q - обеспечивает формирование очереди печати из q элементов (максимальное число файлов, которые могут одновременно находиться в очереди на печать). Допустимы значения от 4 до 32, а по умолчанию принимается 10. Если указывается переключатель /Q, то в командной строке никакие аргументы pattern недопустимы. Увеличение размера очереди печати повышает удобство работы, но ведет к некоторому увеличению задействованного объема ОЗУ.

/M:m - задает непрерывный интервал времени в тиках (посредством числа m), в течение которого команде PRINT разрешается использовать ресурсы ПЭВМ до переключения на основную задачу. Допустимы значения от 1 до 255. По умолчанию принимается 2;

/U:u - определяется числом u интервал времени в тиках, в течение которого команда PRINT будет ждать перевода принтера в готовность до активизации интервала, заданного переключателем /S. Допустимыми являются значения от 1 до 255, а по умолчанию принимается 1.

Если переключатель /D не задан, то пользователю выдается запрос:

Name of list device [PRN]:

(Имя печатающего устройства)

Для указания PRN достаточно в ответ на него нажать клавишу Enter. В противном случае следует ввести имя адаптера интерфейса.

Для управления очередью печати используются следующие переключатели:

/Т - удалить все файлы из очереди печати и отменить печать текущего файла;

/Р - поставить файлы, выделенные по pattern, в очередь печати. Область действия этого переключателя распространяется на предыдущий и все последующие аргументы до начала области действия переключателя /С;

/С - удалить файлы, выделенные по pattern, из очереди печати. Область действия этого переключателя распространяется на предыдущий и все последующие аргументы до начала области действия переключателя /Р.

Очевидно, переключатели /Р и /С, приписанные к одному аргументу, несовместимы. По умолчанию действует переключатель /Р, так что его использование имеет смысл, если ранее в командной строке указан один из переключателей /Т или /С.

Файлы выводятся на принтер в порядке постановки их в очередь для печати. Если одновременно в очередь помещается несколько файлов (по шаблону в pattern), то они выбираются в порядке их вхождения в каталог на диске.

Чтобы отобразить на экране содержимое очереди печати, следует выдать команду PRINT без каких-либо аргументов и переключателей.

Замечания:

■ команда PRINT не обеспечивает форматирования выводимого текста, хотя перед началом вывода каждого файла из очереди печати осуществляет перевод страницы. Разбивка содержимого файла на страницы может быть реализована только самим принтером или по управляющим символам в файле;

■ не следует указывать в команде PRINT двоичные файлы;

■ аналогично команде TYPE команда PRINT расширяет символы ТАВ в несколько пробелов;

■ команда PRINT увеличивает размер резидентной части DOS;

■ каждый элемент очереди печати может содержать не более 64 символов (включая имя логического привода), так что пользователю иногда может потребоваться изменить местоположение печатаемых файлов в файловой структуре;

■ принтер командой PRINT используется монопольно;

■ чем меньше значение в переключателе /М и чем большее значение задано переключателем /S, тем медленнее будет осуществляться печать;

Примеры:

1) PRINT /D:AUX /U:2 /S:4 –установить типичные параметры для оптимизации производительности последовательного LQ-принтера (или другого относительно медленного печатающего устройства), но пока ничего не печатать;

2) PRINT C: MEMO.TXT - начать печатать (точнее – поместить в очередь на печать) файл MEMO.TXT;

3) PRINT /T CHAP*.TXT /P INTR.TXT CHAPTER4.TXT /C - немедленно завершить, очистить очередь печати и поместить в нее файлы CHAP*.TXT, а также INTR.TXT; затем удалить из очереди файл CHAPTER4.TXT;

4) PRINT CHAP1.TXT /С CHAP10.TXT - удалить из очереди печати указанные файлы.

Команда RESTORE

Назначение: восстановление зарезервированных посредством команды BACKUP файлов.

Тип: внешняя.

Синтаксис:

RESTORE d: pattern [/S] [/P] [/B:date] [/A:date] [/E:time] [/L:time] [/M] [/N]

Комментарии. Данная команда используется для восстановления на диске разрушенных или случайно удаленных файлов, если они предварительно были зарезервированы на другом диске (дисках) командой BACKUP. Обычно в качестве исходных для восстановления применяются гибкие диски, а информация регенерируется на жестком диске.

Первый аргумент команды является исходным и определяет привод, в который устанавливаются диски с резервными копиями файлов.

Второй аргумент является целевым и определяет восстанавливаемые файлы (а также их размещение при восстановлении). Задавать целевой аргумент нужно так, чтобы он соответствовал исходному аргументу команды BACKUP, посредством которой исходный резервный набор создавался. Под соответствием в данном случае понимается то, что множество спецификаций файлов, выделенных по целевому аргументу команды RESTORE, должно пересекаться с множеством спецификаций файлов, выделенных по исходному аргументу соответствующей команды BACKUP (при этом маршруты должны полностью совпадать, а приводы могут различаться). Если первое множество содержится во втором, то будет восстанавливаться только часть зарезервированных файлов. В противном случае могут восстанавливаться либо часть, либо все зарезервированные файлы, что определяется видом шаблона. В частности, если Вы зарезервировали файлы по шаблону *.DOC, то можете восстановить их по шаблону *.* (все DOC-файлы) или CHAP*.* (только те DOC-файлы, имена которых начинаются с CHAP). Такая техника позволяет извлечь из резервного набора не все имеющиеся в нем файлы, а только некоторые из них, но восстановленные файлы обязательно должны быть размещены в тех же местах файловой структуры, где были оригиналы при резервировании. Как раз поэтому перед переносом (возможно, длинных) файлов с одной ПЭВМ на другую рекомендуется скопировать исходный файлы в корневой каталог жесткого диска.

В командной строке допустимы следующие переключатели, расширяющие или ограничивающие множество выделенных по pattern файлов:

/S - восстанавливать не только заданные целевым аргументом файлы, но и файлы во всех подчиненных каталогах с учетом ограничений, накладываемых посредством pattern и другими переключателями;

/Р - выдавать запрос на подтверждение восстановления (перезаписи) каждого файла, если он на целевом диске уже существует и имеет атрибут R. Когда /Р не задан, файлы с атрибутом R заменяются на целевом диске без каких-либо предупреждающих сообщений;

/B:date – восстанавливать только те файлы, которые на целевом диске в последний раз модифицированы не позже указанной даты date, тем самым заместив их зарезервированными версиями;

/А:date – восстанавливать только те файлы, которые на целевом диске в последний раз модифицированы не раньше указанной даты date (тем самым заместив их зарезервированными версиями). Пара переключателей /В и /А позволяет выбрать любой диапазон дат;

/Е:time – восстанавливать только те файлы, которые на целевом диске в последний раз модифицированы не позже указанного времени time. Переключатель имеет смысл использовать только совместно с /В;

/L:time – восстанавливать только те файлы, которые на целевом диске в последний раз модифицированы не раньше указанного времени time. Переключатель имеет смысл использовать только совместно с /А;

/М - восстановить только те файлы, которые на целевом диске модифицированы после последнего резервирования (т.е. в момент восстановления имеют атрибут А) или отсутствуют (удалены);

/N - восстановить только файлы, которые на целевом диске больше не существуют (удалены).

Восстановлению подлежат лишь файлы, удовлетворяющие одновременно всем критериям, заданным целевым аргументом (шаблоном) и переключателями.

Данная команда вырабатывает следующие коды возврата:

0 - нормальное завершение;

1 - для восстановления не найдено ни одного файла;

3 - выполнение команды принудительно завершено пользователем;

4 - выполнение команды аварийно завершено из-за ошибки.

Замечания:

■ команда RESTORE восстанавливает файлы из резервных наборов, созданных командами BACKUP более ранних версий DOS;

■ ни исходный, ни целевой аргументы опускать нельзя;

■ целевой аргумент часто допускается задавать в виде символа «.» для обозначения шаблона *.* или d: для краткого указания d:.\*.*, однако спецификацию dir в общем случае употреблять нельзя;

■ команда RESTORE при восстановлении поддерева файловой структуры в случае необходимости автоматически создает требуемые каталоги;

■ RESTORE аналогично команде XCOPY не разрушает, а лишь дополняет существующее дерево файловой структуры;

■ После завершения выполнения команды RESTORE не мешает убедиться в результатах ее работы с помощью команд DIR и TYPE;

■ Переключатели /В и /Е используются для замещения старых файлов их новыми версиями;

Примеры:

1) RESTORE A: C:\ARC\LONGFILE.LZH - восстановить указанный файл;

2) RESTORE A: C:\*.* /S - восстановить на диске в приводе С все существующие в резервном наборе файлы;

3) RESTORE A: C:\DBASE\*.DBF /S – восстановить поддерево файловой структуры, содержащее файлы с расширением DBF, в каталоге C:\DBASE;

4) RESTORE A: C:\*.* /S /А:01-13-04 /В:01-14-04 – восстановить на диске в приводе С все файлы, модифицированные в последний раз с 13 по 14 января 2004 г.