Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пиппец 2.doc
Скачиваний:
107
Добавлен:
07.06.2015
Размер:
3.16 Mб
Скачать

55. Язык сценариев ос

Командные файлы DOS

Командным (или пакетным — от batch) называется текстовый файл, имеющий расширение ВАТ, и содержащий последовательность команд и инструкций командного языка DOS. Командные файлы предназначены для упрощения выполнения часто используемых последовательностей команд. Пользователь получает, таким образом, возможность создания собственного интерфейса. Командные языки играют очень большую роль в таких мощных ОС, как UNIX.

PR1.BAT

D:

cd D:\ME\DOC D:\ME\ME386.EXE

Такой командный файл устанавливает текущий диск и текущий каталог и запускает текстовый редактор Multi Edit. Если создаваемые в нем файлы хранятся в каталоге D: \ME\DOC, то данный командный файл упростит процедуру открытия и сохранения файлов, поскольку по умолчанию эти операции осуществляются в текущем каталоге.

Командный язык DOS дает возможность параметризации командных файлов - использования в их теле переменных и установки их значений перед выполнением.

Такая возможность реализуется указанием в теле командного файла формальных параметров, которые заменяются фактическими параметра­ми при вызове командного файла. Формальные параметры могут иметь имена %'.1,%2, ...,%9. Фактические параметры являются последовательно­стями символов, задаются в командной строке после имени пакетного фай­ла, отделяются от него и друг от друга пробелами.

Вызов

PR2.BAT INSTR.TXT

осуществит загрузку тестового редактора Multi Edit и открытие файла D:\ME\DOC\INSTR.TXT.

Рассмотрим инструкции командного языка DOS.

@ строка командного файла

Подавляет вывод изображения строки командного файла.

ECHO [ON | OFF | сообщение]

Выводит сообщение, а также разрешает или запрещает вывод содержи­мого командных файлов. Команда ECHO OFF отменяет вывод командных строк до момента, пока не встретится команда ECHO ON.

REM комментарий

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

CALL файл [параметры]

Осуществляет вызов одного командного файла из другого с последую­щим возвратом в точку вызова. В случае аналогичного вызова, осуществ­ляемого путем простого указания имени командного файла, возврат в файл, из которого производился вызов, не произойдет.

PAUSE [сообщение]

Приостанавливает выполнение командного файла и выводит на экран сообщение. Эта команда используется для приостановки командного фай­ла перед выполнением критических операций или для выполнения пользо­вателем определенных действий. После текста сообщения на следующей строке будет выведено сообщение "Press any key to continue ..." ("Для про­должение нажмите любую клавишу..."). PR3.BAT

©ECHO OFF

ECHO Установите дискету в привод А: ECHO и нажмите любую клавишу PAUSE > NUL

ECHO ON ■ •'•

COPY %1 A:

Приведенный командный файл осуществляет копирование файла, ука­занного в качестве параметра, на дискету в устройстве А:. При этом, для предотвращения случайного обращения к дисководу, в который не поме­щена дискета, перед выполнением копирования выполнение командногофайла приостанавливается и на экране появляется сообщение Установите дискету в привод А:

и нажмите любую клавишу

Вывод сообщения DOS "Press any key to continue ..." подавляется пере­направлением вывода на фиктивное устройство. После нажатия клавиши выполняется операция копирования.

GOTO метка

Осуществляет переход к строке файла с указанной меткой. После вы­полнения этой команды выполнение командного файла продолжается со строки, текстуально следующей за строкой с заданной меткой. Метка пред­ставляет собой последовательность букв и цифр. Длина метки не ограни­чивается, но DOS учитывает первые 8 символов. Строка с меткой должна начинаться с символа :, непосредственно за которым указывается сама метка. Строки с метками часто используются не по прямому назначению, а для комментирования командного файла.

IF [NOT] условие команда

Команда IF позволяет выполнить или пропустить указанную в ней ко­манду в зависимости от содержащегося в ней условия. При отсутствии NOT команда будет выполняться, etmусловие истинно; при наличии NOT - если условие ложно.

Условие может быть задано одним из следующих способов: EXIST pattern истинно, если существует по крайней мере один файл со спецификацией шаблона pattern;

string] = =string2 истинно, если строки string! и string2, возможно, пос­ле замещения в них параметров, совпадают;

ERRORLEVEL п истинно, если последняя выполненная программа вы­дала код возврата не меньший, чем целое число п.

PR4.ВАТ

IF NOT EXIST C:\DOS\FORMAT.COM COPY D:\BACKUP\FORMAT.COM С : \DOS

В случае отсутствия файла FORMAT. COM в каталоге С: \DOS осуще­ствляется его копирование туда из каталога D: \BACKUP.

PR5,ВАТ

@Echo off :GOLDRUN

GOLDED.EXE

If ErrorLevel 101 Goto ERROR If ErrorLevel 100 Goto REBUILD

If ErrorLevel 007 Goto E_N_L If ErrorLevel 006 Goto E_N_ Goto NO_MAIL .•ERROR

Echo GoldED Error exit!

Goto END :REBUILD

Echo ERROR! The files needs rebuilding!

Pause

Goto GOLDRUN

:E_N_L

Echo New Echo, Net and Local mail entered!

Goto END

:E_N_L

Echo New Echo and Netmail entered!

Goto END

:NO_MAIL

Echo No new mail entered. . .

Goto END

:END

Echo Thank you for using GoldED! :-)

В приведенном примере анализируется код, возвращаемый програм­мой GOLDED. EXE, и в зависимости от его значения выполняются те или иные действия. Обратите внимание на возможность зацикливания команд­ного файла между метками GOLDRUN и REBUILD. Выход из этого цикла (и из командного файла вообще) может быть осуществлен нажатием клавиш Ctrl-Break во время приостановки выполнения файла командой PAUSE.

CHOICE [/С:варианты] [/N] [/S] [/Тс,пп] [текст]

Команда CHOICE используется для организации интерактивных коман­дных файлов. Она отображает на экране заданный текст и приглашение с вариантами ответа. После ввода ответа она генерирует код возврата, рав­ный порядковому номеру символа в приглашении, или 255 в случае воз­никновения какой-либо ошибки. Этот код возврата может быть проанали­зирован серией команд IF, в результате чего в командном файле будут организованы альтернативные ветви его выполнения. Допустимые пере­ключатели интерпретируются следующим образом:

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

По умолчанию предполагается наличие переключателя /С: YN. /N - не отображать приглашение на экране. / S - учитывать регистр символов.

/Tс,пп - ответ с выбирается автоматически после пп секунд ожидания. Число пп заключается в пределах от 1 до 99. PR5.ВАТ

@ЕСНО OFF

REM Запуск антивирусной программы ECHO Выберите антивирусную программу: ECHO M - Microsoft Anti-Virus ECHO A - Aidstest ECHO W - Doctor Web CHOICE /C:MAW /N IF ERRORLEVEL 25 5 GOTO ERROR IF ERRORLEVEL 3 GOTO DRWEB IF ERRORLEVEL 2 GOTO AIDSTEST C:\DOS\MSAV.EXE GOTO END :ERROR

ECHO Ошибка GOTO END :DRWEB

C:\DRWEB\DRWEB.EXE GOTO END :AIDSTEST

C:\UTIL\AIDSTEST.EXE :END

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

FOR %%параметр_цикла IN (список) DO команда

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

PR5.BAT

FOR %%D IN (C,D,E) DO DIR %%D:\

Выполнение командного файла приведет к выводу на экран содержи­мого корневых каталогов дисков С: , D: , Е:.

PR6.BAT

FOR %%F IN (*.PAS) DO CALL COMPILE.BAT %%F

Будет выполняться командный файл COMPILE. ВАТ для каждого файла

с расширением PAS из текущего каталога. Имя файла будет передаваться в

качестве аргумента.

SHIFT

При каждом выполнении команды SHIFT i-ый параметр командного файла (i= 1,... , 8) принимает значение i+1-го параметра, а параметр %9 связывается с первым слева из еще свободных аргументов. Команду SHIFT используют тогда, когда необходимо обработать неопределенное число фактических параметров или число таких параметров больше девяти.