Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_ОС_и_среды.rtf
Скачиваний:
59
Добавлен:
13.09.2019
Размер:
12.88 Mб
Скачать

2.2.1. Формальные параметры командных файлов

Для создания универсальных пакетных файлов используется технология формальных и фактических параметров. Формальный параметр принимает фактическое значение из командной строки при вызове командного файла. Обозначается формальный параметр в командах %n, где n изменяется от 1 до 9. Фактические параметры при вызове пакетного файла должны разделяться пробелами:

C:>test.bat input output

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

Для контроля получения фактического значения формальным параметром используется условие условие с%n==с, где с – произвольный символ. Если формальный параметр не получил значения, то замыкающие символы – коды равны.

Примеры.

Пример №1. Проверка наличия файла на диске и просмотр его содержимого:

@echo off

cls

if exist t2.bat goto ok

echo Файл не найден !

pause

goto err

:ok

type t2.bat | more

pause

:err

Пример №2. Циклическое выполнение команды.

@echo off

cls

for %%a in (*.txt *.bat) do copy %%a a:\d

Где %%a формальный параметр, который получает фактическое значение из списка заданного после ключевого слова in.

Пример №3. Контроль формального параметра.

@echo off

cls

rem Проверка наличия параметра и файла

if a%1==a goto nodata

if not exist %1 goto err

rem Просмотр файла

type %1 | more

goto stop

rem Обработка ошибок

:nodata

echo Имя файла не задано !

pause

goto stop

:err

echo Файл не найден !

pause

:stop

2.2.2. Дополнительные возможности пакетной обработки. Утилита be

Чтобы создавать сложные пакетные файлы с возможностью управления вводом – выводом на консоль ПК, используют утилиты BE.EXE фирмы Symantec. Утилиты представляет собой интерпретатор команд. Команды подаются в следующем формате:

Be command [param]

param – параметры команды.

Основные команды:

  1. Изменения цвета экрана консоли. SA f ON b. Где f – цвет переднего плана, b – цвет фона экрана.

Список цветов:

Black, Red, Green, Yellow, Blue, Magenta, Cyan, White. Для усиления яркости переднего плана используется атрибут Bright.

  1. Вывод рамки. BOX x1 y1 x2 y2 [SINGLE | DOUBLE] color. X – строки, Y – столбцы. SINGLE – одинарная рамка, DOUBLE – двойная рамка.

  2. Создание текстового окна. WINDOW x1 y1 x2 y2 f on b [SHADOW EXPLODE]. SHADOW – вывод тени, EXPLODE – раскрытие окна из центра.

  3. Вывод символа заданное число раз. PRINTCHAR symbol rep [color].

  4. Позиционирование курсора на экране. ROWCOL x y [text] [color].

  5. Задержка на заданное время. DELAY t, где t период задержки равный 1/18 c.

  6. Подача звукового сигнала. BEEP keys. Ключи : /Dn – длительность звучания, /Fn – частота звучания в Герцах, /Rn – количество повторений ноты, /Wn – период ожидания между повторениями ноты.

  7. Организация диалога с пользователем. ASK “text”,keys DEFAULT=key TIMEOUT=t. Где keys – список клавиш, key – клавиша по умолчанию, t- период ожидания выбора клавиши по умолчанию в секундах.

Пример.

Командный файл с меню.

@echo off

:loop

cls

rem ----------------------

be sa white on blue

be window 3 3 10 43 bright yellow on blue shadow explode

be rowcol 4 5 Yes

be rowcol 6 5 No

be rowcol 8 5 Continue

be rowcol 12 5

be ask "Select (Y,N,C)",YNC timeout=5 default=y

if errorlevel 3 goto continue

if errorlevel 2 goto no

if errorlevel 1 goto yes

rem ----------------------

:continue

echo Continue !!!

pause > nul

goto loop

:no

echo No !!!

pause > nul

goto stop

:yes

echo Yes !!!

pause > nul

rem -----------------------

:stop

cls

Примечание. Команда ASK возвращает код «ошибки», который соответствует порядковому номеру нажатой клавиши в списке keys. Проверка кодов должна выполняться от старшего кода к младшему.