Методическое пособие для выполнения лабораторных работ и КР (1075934), страница 9
Текст из файла (страница 9)
Так <Имя файла> - например, стандартный текстовый файл операционной системы (в некоторых случаях не нужно далее раскрывать значение нетерминального символа, сославшись на общепринятые правила в операционной системы, но можнои раскрыть). Нужно раскрыть также, что означает использование параметра 2 (/L), напри-2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”35мер установку специального режима работы программы. Для параметра 3 нужно пояснитьчисло символов, которые нужно ввести для пароля. Символ “_” в нашем описании обозначает пробел, а параметры 2 и 3 могут быть опущены при запуске. Если допускается изменять последовательность параметров (пусть 2 и 3), то нужно в описание грамматики запуска добавить дополнительное правило вида:<список параметров программы>:= <Параметр 1>[_< Параметр 3 >] [_< Параметр 2 >]Для описания инструкций командной строки во 2-й, 6-й лабораторных работах и вкурсовой работе необходимо использовать подобное описание.Пример 3.
Рассмотрим также для примера описание команды IF в формате БНФ.Во-первых, не будем учитывать возможности расширенного режима работы CMD, и, кроме того, сократим при этом немного синтаксис и семантику описания.<Оператор IF>:= IF_ [NOT] <Варианты конструкции оператора IF>< Варианты конструкции оператора IF>:= <конструкции ERRORLEVEL> | <конструкции со строками> | <конструкции EXIST><конструкции ERRORLEVEL>:= ERRORLEVEL_<число>_<команда><конструкции со строками>:= <строка>==< строка >_<команда><конструкции EXIST>:= EXIST _<имя файла>_<команда><строка>:=<любая последовательность символов до пробела _> | <переменная> | %<переменная>% | <параметр командной строки><параметр командной строки>:=%<десятичная цифра><десятичная цифра>:=0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |9Где:<команда> - любая команда языка командных файлов, исключая IF.
Данная командавыполняется в случае, если условие, заданное в операторе IF, является истинным.<число> - целое число без знака, которое сравнивается со значением переменнойERRORLEVEL, определяющий код возврата последней выполненной в командномфайле программы или встроенной команды. Между этими значениями подразумевается знак отношения ( >= ).<имя файла> - стандартное имя файла операционной системы, существование которого проверяется в условии EXIST. Условие считается истинным, если файл найден впределах текущей директории или по заданному пути (PATH).<переменная> - любая текстовая переменная командного файла, включая и системныепеременные окружения установленные командой SET.
Если не указаны символыпроцентов (%), то имя переменной рассматривается как строка, а противном случаерассматривается значение этой переменной.< любая последовательность символов до пробела > - любая последовательность символов, которая ограничивается пробелом. Необходимо следить, чтобы в группу символов случайно не попадали служебные слова.Примеры использования оператора командных файлов IF:1. IF ERRORLEVEL 3 GOTO MET1 – переход на метку MET1, еслиERRORLEVEL >= 32. IF (%1) == () SET VAR=NODOSTUP – переменной VAR присваивается значениеNODOSTUP если первый параметр не задан.3.
IF NOT EXIST FIRST.EXE GOTO FINISH – переход на метку FINISH, если файлаFIRST.EXE не существует.Практика.1. Опишите в БНФ синтаксис вещественного числа с порядком ( Пример числа:12.234 Е +10).2. Опишите в БНФ синтаксис запуска командного файла для 2-й ЛР (обязательноетребование к ЛР).2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”363. Опишите в БНФ синтаксис запуска программы для 6-й ЛР (обязательное требование к ЛР).4.
Опишите в БНФ синтаксис запуска резидента для КР (обязательное требованиек КР).5. Опишите в БНФ синтаксис оператора IF для расширенного режима CMD.2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”375. Командные файлы и их применениеЯзык командных файлов – это простейший язык программирования с усеченнымивозможностями: ограниченное число операторов, ограниченное число типов переменныхи ограниченные возможности по отладки программ. Язык командных файлов предназначен для написания программ управления запуском других программ (заданий).
Поэтомуего ранее называли, а это Вы можете встретить в литературе, Языком Управления Заданиями (ЯУЗА). Командные файлы (Batch Files) имеют специальное файловое расширение(*.BAT), которое не может быть изменено. Благодаря этому расширению операционнаясистема автоматически запускает режим командной строки (см. выше) и выполняет командный файл под управлением командного процессора (или COMMAND.COM).Выше было отмечено, что командный процессор CMD.EXE может работать в двухрежимах: стандартном и расширенном. В расширенном режиме некоторые команды имеют дополнительные возможности. При рассмотрении особенностей командных файлов идиректив, мы будем ориентироваться на стандартный режим. При необходимости Вы можете включить расширенный режим и получить справки о работе команд в этом режиме.Запуск интерпретатора CMD.EXE в расширенном режиме выполняется так:>CMD.EXE /E:ON↵Выключение расширенного режима выполняется так:>CMD.EXE /E:OFF↵5.1.
Язык командных файловПрограмма на языке командных файлов может быть представлена так:[:<метка>]<инструкция командного файла>[:<метка>]<инструкция командного файла>[:<метка>]<инструкция командного файла>…[:<метка>]<инструкция командного файла>Метка для языка командных файлов, если она используется, должна располагатьсяв начале строки, и иметь символьной обозначение, которое, кстати, может начинаться и сцифрового символа (Например, - “:MET1”, “:10”, “:LAB”). Для обозначения меток допускается использовать только латинские символы.
В качестве инструкций командных файлов можно использовать:− Директивы командных файлов;− Внутренние команды операционной системы;− Внешние команды (утилиты) операционной системы;− Любые программы доступные для запуска;− Пустые строки, в этом случае имеется ввиду то, что в одной строке расположенатолько метка.На одной строке в программе командных файлов (за исключением оператора IF)может располагаться только одна инструкция. В качестве основных директив командныхфайлов выделим следующие директивы, пояснив кратко их назначение:− Директива IF – для организации ветвления в командных файлах, организации циклов и проверки условий.− Директива SET – для присваивания переменным окружения значений.2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”38− Директива SHIFT – для изменения порядка следования (сдвига) параметров командной строки, заданных при запуске программы.− Директива FOR – для организации выполнения однородных команд применительно к множеству определенных переменных.− Директива ECHO – для организации вывода на консоль и переключения режимоввывода информации.− Директива GOTO – для выполнения безусловных переходов на конкретные меткипрограммы данного командного файла.− Директива PAUSE – для организации паузы при работе командного файла с задание информационного сообщения.− Директива REM – для комментирования командных файлов.− Директива CALL – Для вызова других командных файлов с возвратом (вложенныхкомандных файлов) в данный командный файл (аналогично вызову функций ипроцедур).− Директива EXIT – для завершения выполнения командного файла.
Если даннаякоманда выполняется во вложенном командном файле без параметра (/b), то выполняется завершение работы всех файлов (фактически завершается CMD.EXE).Если параметр (/b) установлен, то выполняется возврат в основной файл.− Директива CLS – для очистки экрана дисплея (консоли) в момент выполнения данной директивы.− Модификатор @ - для отключения вывода директивы на экран дисплея.Более подробную информацию о директивах командных файлов вы найдете всправочниках, литературе по ДОС и документации на операционную систему. Можно получить справку о всех командах и директивах вызывая утилиту HELP:>HELP↵Или для конкретной команды вызов справки выполняется так:> HELP <команда>↵Кроме того, справку по конкретной команде можно получить так:><команда> /?↵И наконец, в среде WINDOWS всегда можно нажать клавишу “F1” при активномрабочем столе (Desktop) и ввести название команды в поле для поиска.Набор доступных внешних команд Вы можете уточнить в справках и документации, а также посмотреть в каталогах ОС (для XP – SYSTEM32), которые доступны в каталоге WINDOWS.
Для этой цели удобнее использовать файловые менеджеры (см. ниже).5.2. Разработка, ввод и исполнение командных файловСоздание командных файлов – это процесс программирования, который включаетвсе основные этапы: разработка алгоритмов, построение блок-схем программы, написаниепрограммы на языке командных файлов, ввод ее в виде электронного документа, отладкапрограмм командных файлов и их исполнение (запуск).В зависимости от сложности поставленной задачи при создании командного файла,создание алгоритма программы может быть и простым и сложным. Этап разработки алгоритма должен завершаться разработкой блок-схемы программы (см. раздел ниже).
Командный файл вводится в простом текстовом редакторе (см. раздел по вводу и редактированию программ на языке Ассемблер). Имя командного файла должно иметь специальноерасширение (*.BAT). Желательно не использовать длинных имен (> 8-ми символов), таккак могут возникнуть проблемы при работе с программой в режиме командной строки.К сожалению, для отладки командных файлов нет специальных и удобных отладчиков, поэтому этот процесс может быть трудоемким. Основные рекомендации для отладки программ командных файлов:2010 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”39− Не отключайте преждевременно режим вывода команд и директив на экран дисплея (нужен режим ECHO ON).− Не отключайте режим вывода отдельных команд с помощью модификатора – “@”.− При необходимости используйте команду ECHO для вывода промежуточных значений переменных программы.− При необходимости используйте команду PAUSE при отладке частей программы.− Изучите хорошо и грамотно используйте директивы командных файлов.− Корректно используйте директиву комментирования REM, для пояснения частейпрограммы и для выделения критических мест в тексте программы.− Используйте вложенные командные файлы для выделения фрагментов, которыеимеют отдельное функциональное значение и могут быть отлажены отдельно.− Сохраняйте старые копии программ командных файлов при существенных изменениях, сделанных в процессе отладки.Исполнение (запуск) командных файлов возможно в режиме командной строки ипри запуске из других командных файлов.