Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012 КОНТРОЛЬНАЯ РАБОТА ПО ОС / КОНТРОЛЬНАЯ РАБОТА.doc
Скачиваний:
42
Добавлен:
29.05.2015
Размер:
320.51 Кб
Скачать

Общие сведения о командных файлах

Язык оболочки командной строки (shell language) в Windows реализован в виде командных (их также называют пакетными или bat-файлами) файлов, которые позволяют автоматизировать выполнение обычных (типовых) задач управления процессами операционной системы. Командный файл в Windows — это обычный текстовый файл с расширением bat или cmd, в котором записаны допустимые команды операционной системы (как внешние, так и внутренние), а также некоторые дополнительные инструкции и ключевые слова, придающие командным файлам некоторое сходство с алгоритмическими языками программирования. Команды интерпретатора командной строки, записанные в пакетные файлы, будут выполняться точно так же, как если бы пользователь вводил их с клавиатуры. Файлы являются наиболее удачным решением для реализации простых алгоритмов, связанных с операциями над файлами.

Например, для создания командного файла, отображающего содержимое текущих каталогов дискет в приводах А и В, достаточно ввести в командной строке следующую информацию:

C:>COPY CON DIRAB.BAT «Enter»

C:>CLS «Enter»

C:>DIR A: «Enter»

C:>DIR B: «Enter»

C:>«F6» «Enter»

Пакетный файл с именем DIRAB.BAT, отображающий содержимое каталогов

Командный файл запускается путем ввода его спецификации в ответ на приглашение в командной строке, причем расширение ВАТ допускается не указывать:

C:>DIRAB

Вызов командного файла

При необходимости прервать выполнение пакетного файла следует нажать комбинацию клавиш Ctrl-Break .

При создании и использовании командных файлов полезно знать следующее:

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

  • текущий привод, текущие каталоги и состояние окружения ОС при входе в файл не изменяются;

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

Основные команды командных файлов

Дублирование команд на экране: ECHO [ON | OFF | [сообщение] ]

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

Отключение эхо-отображения отдельной команды: «@»

Например, @ ECHO OFF

Для вывода на экран пустой строки с целью разграничения фрагментов текста нужно использовать команду в виде «ECHO:» или с сообщением из неотображаемого символа @, например:

@ЕСНО OFF ; ECHO:

Приостановка выполнения файла: PAUSE [сообщение]

По команде Pause обработка пакетного файла временно прекращается и на экран выдается сообщение: Strike a key when ready... (Затем нажмите любую клавишу)

Комментарии в файле: REM [комментарии]

Команду Rem удобно использовать при отладке файла для временного запрета интерпретации команды путем вставки Rem перед ней.

Вызов одного пакетного файла из другого: CALL file [список аргументов]

Когда выполнение командного файла file завершается, управление возвращается в точку его вызова.

Параметризация файлов

Командный интерпретатор Windows поддерживает передачу информации в пакетные файлы через аппарат параметров. В теле файла используются параметры, а при его вызове задаются аргументы, замещающие их. В качестве параметров применяются символы %0, %1, …, %9.

Действует принцип позиционного соответствия параметров и аргументов, т.е. вместо %i-го параметра подставляется i-ый аргумент. Если в командной строке при вызове файла используется меньше девяти аргументов, то лишние параметры из %1 — %9 замещаются пустыми строками. И наоборот, избыточные аргументы отбрасываются.

Изменение соответствия параметров аргументам пакетного файла: SHIFT

При необходимости можно использовать более девяти параметров командной строки. Это достигается с помощью команды SHIFT, которая изменяет значения замещаемых параметров с %0 по %9, копируя каждый параметр в предыдущий, то есть значение %1 копируется в %0, значение %2 – в %1 и т.д. Замещаемому параметру %9 присваивается значение аргумента, следующего в командной строке за старым значением %9. Если же такой аргумент не задан, то новое значение %9 — пустая строка.

Рассмотрим пример. Пусть командный файл my.bat вызван из командной строки следующим образом:

MY.BAT P1 P2 P3

Тогда %0=MY.BAT, %1=P1, %2=P2, %3=P3, параметры %4 – %9 являются пустыми строками. После выполнения команды SHIFT значения замещаемых параметров изменятся следующим образом: %0=P1, %1=P2, %2=P3, параметры %3 – %9 – пустые строки.

При включении расширенной обработки команда SHIFT поддерживает ключ /n, задающий начало сдвига параметров с номера n, где n может быть числом от 0 до 9. Например, в следующей команде:

SHIFT /2

параметр %2 заменяется на %3, %3 на %4 и т.д., а параметры %0 и %1 остаются без изменений.

Перенаправление ввода-вывода

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

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

copy myfile.txt text1.txt - скопировать содержимое файла myf1le.txt в файл text1.txt;

copy myfile.txt prn - отпечатать содержимое файла myfile.txt на принтере;

copy myfile.txt nul - скопировать содержимое файла myfile.txt на фиктивное устройство;

copy con myfile.txt - ввести информацию в файл myfile.txt с клавиатуры.

dir > filelist.txt - вывести содержимое рабочего каталога не на экран дисплея, а в файл filelist.txt;

type myfile.txt >prn - распечатать содержимое файла myfile.txt на принтере вместо отображения на экране дисплея;

copy myfile.txt техт.тхт > nul — скопировать содержимое файла, но не выдавать отчет;

prog < input.txt > output.txt — обеспечить ввод исходных данных в программу prog из файла input.txt, а вывод результатов ее работы - в файл output.txt.

Операторы перехода

Командный файл может содержать метки и команды GOTO перехода к этим меткам. Любая строка, начинающаяся с двоеточия :, воспринимается при обработке командного файла как метка. В команде перехода можно задавать в качестве метки перехода строку :EOF, которая передаст управление в конец текущего пакетного файла. Рассмотрим на следующем примере:

@ECHOOFF

COPY%1 %2

GOTOLabel1

ECHOЭта строка не выполнится

:Label1

REMПродолжение выполнения

DIR%2

Отключение вывода команд файла при выполнении

Когда мы доходим до команды

GOTOLabel1

выполнение продолжается со строки

REMПродолжение выполнения

Организация разветвлений в командных файлах

IF … ELSE (ключевое слово ELSE может отсутствовать)

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

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