Задание на лабораторную работу




Программирование командных BAT-файлов, обработка аргументов, метки,

Операторы перехода и ветвления, организация циклов

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

Теоретические сведения

  1. Пакетные командные файлы (ПКФ) в системе MS-DOS

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

ПКФ в системе MS-DOS являются текстовыми файлами в коде ASCII, которые содержат последовательности команд ОС. Они должны иметь расширение.ВАТ и иметь имя не более восьми символов. При этом, в текущем каталоге не должно быть одноименных файлов с расширением.СОМ или.ЕХЕ.

В ОС MS-DOS специально для ПКФ предусмотрено восемь команд и специальный символ @ (Табл.1).

Данные команды являются внутренними командами ОС, размещаются в командном процессоре и доступны из любого каталога.

Таблица 1

Команда Назначение
@ Не выводит на экран дисплея строку которая следует за ним.
CALL Осуществляет выполнение одного пакета команд внутри другого пакета.
CLS Очистка экрана.
ECHO OFF Запрещает вывод на экран командных строк.
ECHO ON Разрешает вывод на экран командных строк.
ECHO <текст> Вывод на экран текстовой информации (при действии команды ECHO OFF).
FOR Задание цикла.
GOTO<метка> Передача управления на указанную метку.
IF Условное выполнение команды.
PAUSE Прерывает выполнение программы.
REM Выводит текст на экран дисплея.
SHIFT Сдвиг влево параметров команды.

 

Для запуска ПКФ вводится его имя без расширения. В случае, если ПКФ находится не в текущем каталоге, путь доступа к ПКФ должен быть определен командой РАТН. Если в какой-либо команде пакета была допущена ошибка, то выполнение пакета прекращается и на экран выводится сообщение об ошибке.

Можно прервать выполнение пакета нажатием Ctrl-C. В этом случае выводится сообщение:

Terminate batch job (Y/N)?

(Завершить работу командного файла (Да/Нет)?

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

 

  1. Действие команд в командных файлах

Рассмотрим более подробно некоторые команды в ПКФ.

    • ECHO ON/OFF

ECHO <текст сообщения> - вкл/выкл режима вывода команды перед её выполнением.

@ – если этот символ поставлен в начало строки, то следующая за ним команда не выводится при включенном режиме вывода команды перед её выполнением (т.е. если ECHO ON).

    • GOTO

После имени этой команды сообщается метка командной строки, в которую производится переход. Если перед строкой указано двоеточие, то это означает, что за ним следует метка, а не команда. Между двоеточием и именем пробел не ставится, между именем и командой GOTO оставляют пробел. Длина метки ограничивается 8 символами.

Например,

GOTO EXIT оператор безусловного

……………. перехода по метке

:EXIT

· CHOICE

CHOICE [/С:список символов][/Т:символ,число секунд] сообщение

/С:список символов – указывает допустимые символы, которые может ввести пользователь в ответ на сообщение. Если данный параметр не указан, допустимые символы – Y и N.

/Т:символ,число секунд – если этот параметр указан, то в случае, когда пользователь по истечении заданного времени не нажал ни на одну клавишу, принимается ответ символ.

Например: CHOICE /C:YN “Запустить программу ALFA? ”– при ответе N значение переменной ERRORLEVEL устанавливается равным 2, а при ответе Y – равным 1.

    • IF

IF <условие> <действие> – оператор условия.

Например: IF ERRORLEVEL 1 GOTO EXIT.

Переменная <условие> может иметь один из четырех форматов:

1. <набор_символов_1>==<набор_символов_2>.

Условие выполняется, если <набор_символов_1> и <набор_символов_2> являются идентичными после замещения параметров.

2. ERRORLEVEL <номер>.

Условие выполняется, если для последней команды, которую выполнила ОС код завершения равен или больше значения <номер>.

3. EXIST <имя_файла>.

Условие выполняется, если существует файл с указанным именем.

4. NOT <условие>.

Условие выполняется, если не выполняется заданное условие.

    • COMMA

COMMAND /Y /C имя­_командного_файла [параметры] – выполнение командного файла в пошаговом режиме. Текст каждой команды будет выводиться перед выполнением на экран. Для выполнения команды надо нажать клавишу Y или Enter.

    • PAUSE

Выводит на экран сообщение: Strike a key when ready.... Если нужно вывести текст на русском языке, то перед командой PAUSE можно ввести ECHO с текстом "Нажмите любую клавишу".

И после нажатия клавиши дальше выполняется командный файл. В период паузы возможен выход из выполнения командного файла путём нажатия сочетания клавиш Ctrl+C или Ctrl+Break.

    • SHIFT

Формат команды прост: SHIFT. В ПКФ можно использовать до десятка параметров, с помощью данной команды это количество можно увеличить. Команда SHIFT присваивает новые значения параметрам %0 - %9. При этом параметру %0 присваивается старое значение %1,%1 - старое значение %2 и т.д. %9 присваивается значение, следующее за старым значением %9 в командной строке.

    • FOR

FOR %%N IN(группа) DO команда %%N,

где N - однобуквенная переменная, последовательно принимающая значения, входящие в параметр (группа);

(группа) - имя файла или имена файлов, вместе с именем файла могут указываться дисковод и возможный путь доступа; команда - команда ОС MS-DOS.

    • CALL

CALL [<дисковод:>][<путь_доступа>]<командный_файл> <параметры>,

где <дисковод:> - дисковод диск которого содержит командный файл;

<путь_доступа> - путь доступа к данному ПКФ;

<командный файл> - имя ПКФ без расширения.

 

Задание на лабораторную работу

 

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

Таблица 2

Задание
  Разработать пакетный файл для обновления архива. Выбор архиватора осуществляется из меню. Имя архива передается в командной строке.
  Разработать пакетный файл для очистки подкаталога с подтверждением.
  Разработать пакетный файл для проверки дисков (каталогов) на вирусы. Диск выбирается из меню. Имя антивирусной программы - в командной строке (drwebw.exe).
  Разработать пакетный файл для выбора из меню на запуск одного из нескольких редакторов (notepad, ncedit и др.) для редактирования требуемого файла. Имя файла передается в командной строке.
  Разработать пакетный файл для архивации файлов в каталогах и подкаталогах (по отдельности в каждом каталоге) и удаления архивных файлов. Имена каталога и архиватора - в командной строке.
  Разработать пакетный файл для построения системы студенческих каталогов с запросом на создание каталогов требуемых курсов, групп и запросом максимального числа пользователей в группе. Номера курсов и шифры групп - в командной строке.
  Разработать пакетный файл для перехода студента в личный каталог. Группа выбирается из меню, курс передается в командной строке
  Разработать пакетный файл для установки даты и времени (параметры – в командной строке)
  Разработать пакетный файл для очистки студенческих каталогов: удаления файлов *.BAK, *.TMP и др. Номера очищаемых курсов передаются в командной строке.
  Разработать пакетный файл для вывода (на экран, файл, принтер) списка файлов из каталогов студентов. Шифр группы - из командной строки, направление вывода - из меню.
  Разработать пакетный файл для перехода в каталог студента, если он существует и его архивирования
  Разработать пакетный файл для вывода текстового файла на экран по страницам. Имя файла передается в командной строке.
  Разработать пакетный файл для перезаписи файлов документов (*.doc, *.txt) из одного каталога в другой с обновлением
  Разработать пакетный файл для копирования всех файлов документов (*.doc, *.txt) из всех студенческих подкаталогов в директорию «Мои документы»
  Разработать пакетный файл для проверки наличия файлов документов (*.doc, *.txt) в данном подкаталоге (имя – в параметрах). В случае положительного ответа – вывести их список
  Разработать пакетный файл для резервного копирования файлов с определенными расширениями из разных каталогов с возможностью создания резервного каталога, если его нет в системе
  Разработать пакетный файл для поиска во временном каталоге системы файла, имя которого передается параметром, если файл найден, то выдать на экран его отличия от файла с таким же именем из текущего каталога; Если файлы текстовые, то выводятся различающиеся строки из этих файлов. Если файлы двоичные (или указан ключ двоичного сравнения) выводятся различающиеся байты.
  Разработать пакетный файл принимающий параметр с указанием имени файла, содержащего список фамилий студентов. Пользователь должен с клавиатуры вносить новые значения. Наименование файла соответствует названию группы студентов. Если такой файл существует, то выполняется его пополнение. Файл сохраняется в отсортированном в порядке возрастания виде.
  Разработать пакетный файл, копирующий в указанную папку указанные файлы, у которых не установлен атрибут «Архивный» и устанавливающий им атрибут «Архивный».
  Разработать пакетный файл, который из файлов заданных параметрами командного файла создает файл с заданным именем, в который поместить сначала содержимое файлов, в имени которых есть строка «fil», затем содержимое всех остальных файлов.
  Разработать пакетный файл, который выводит на экран, и сохранить в указанном файле полные названия папок (с путем) в названии которых встречается слово Debug.
  Разработать пакетный файл, который считает размер файлов заданного типа, хранящихся на диске в папках с заданным именем.
  Разработать пакетный файл, принимающий параметры с указанием фамилии студента, которого необходимо исключить из списка группы и наименования файла, содержащего этот список, а также выполняющий это действие.
  Разработать пакетный файл, принимающий параметры с указанием двух фамилий студентов, одну из которых следует заменить второй, и наименования файла, содержащего список, а также выполняющий это действие.
  Разработать пакетный файл, который для поддерева папок, начиная с указанной папки переименовывает подпапки с указанным именем, если они существуют, добавив к их имени расширение bak.

 

Контрольные вопросы:

  1. Что такое командный файл?
  2. Какой файл является командным интерпретатором?
  3. Каково назначение файла AUTOEXEC.BAT?
  4. Что такое ESC-последовательность?
  5. Для чего предусмотрена возможность создания в MS-DOS пакетных файлов?
  6. Какие команды операционной системы могут использоваться в ПКФ?
  7. Как запускаются ПКФ?
  8. Что произойдет при выполнении ПКФ если в командах командного файла допущена ошибка?
  9. Каким образом можно прервать выполнение пакета?
  10. Какими средствами можно создать текст ПКФ?
  11. Каким образом организуется ветвление в ПКФ?
  12. Сколько параметров можно использовать при вызове ПКФ?
  13. Как действует команда CALL?
  14. Каково назначение символа @?


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: