Чтобы создавать сложные пакетные файлы с возможностью управления вводом – выводом на консоль ПК, используют утилиты 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. Проверка кодов должна выполняться от старшего кода к младшему.