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

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

Be command [param]

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

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

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

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

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

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

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

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

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

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

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

8. Организация диалога с пользователем. 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. Проверка кодов должна выполняться от старшего кода к младшему.