Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Компьютер IBM PC/AT, MS-DOS и Windows. Вопросы и ответы

© Александр Фролов, Григорий Фролов
Том 10, М.: Диалог-МИФИ, 1993, 218 стр.

[Назад] [Содеожание] [Дальше]

9.7. Как создать меню в CONFIG.SYS и AUTOEXEC.BAT

Конфигурация аппаратных и программных средств компьютера определяется в файле конфигурации CONFIG.SYS и в командном файле AUTOEXEC.BAT.

Если на компьютере работает несколько человек или вы используете несовместимые программные продукты, то вам приходится хранить несколько файлов конфигурации CONFIG.SYS и несколько командных файлов AUTOEXEC.BAT. По мере необходимости вам будет нужно переименовывать их и перезагружать компьютер.

В операционной системе MS-DOS версии 6.0 имеется средство для определения в одном файле CONFIG.SYS нескольких различных конфигураций. Необходимая конфигурация выбирается с помощью меню, которое можно описать в файле CONFIG.SYS.

Для описания меню в MS-DOS версии 6.0 определены несколько специальных команд:

  • <Include>
  • <Menucolor>
  • <Menudefault>
  • <Menuitem>
  • <Submenu>

Команды установки конфигурации компьютера и команды описания меню группируются в так называемых блоках команд и блоках описания меню. Блоки начинаются с заголовков. Заголовок состоит из имени блока, заключенного в квадратные скобки. Блок заканчивается либо заголовком следующего блока, либо концом файла.

Для определения в файлах CONFIG.SYS и AUTOEXEC.BAT нескольких конфигураций необходимо выполнить несколько действий:

  • Определить в файле CONFIG.SYS блок описания основного меню. Описание меню начинается с заголовка [Menu] и следующими за ним командами <MENUCOLOR>, <MENUDEFAULT>, <MENUITEM> и <SUBMENU>. Команды <MENUITEM> и <SUBMENU> определяют элементы основного меню и соответствующие им имена блоков конфигурации. Команды <MENUDEFAULT> и <MENUCOLOR> определяют выбираемый по умолчанию элемент меню и цвет меню.
  • Для каждого элемента меню создать блок команд в котором описать необходимую конфигурацию. Эта конфигурация будет устанавливаться, когда вы выберите соответствующий элемент меню. Каждый блок должен начинаться с заголовка блока. Заголовок блока представляет собой имя блока заключенное в квадратные скобки.
  • При необходимости, вы можете добавить к файлу CONFIG.SYS блок команд с зарезервированным именем [Common]. Команды из этого блока выполняются при выборе любой конфигурации. Рекомендуется добавить в конце файла CONFIG.SYS пустой блок команд с именем [Common].
  • Когда пользователь выбирает из меню конфигурации какой-либо элемент, его имя запоминается в переменной окружения CONFIG. С помощью команды GOTO %CONFIG% вы можете организовать выполнение различных команд в зависимости от выбранной конфигурации. AUTOEXEC.BAT

Рассмотрим подробнее отдельные команды описания меню.

INCLUDE

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

INCLUDE=blockname

Единственный параметр blockname определяет имя включаемого блока конфигурации.

MENUCOLOR

Определяет цвет текста и цвет фона элементов меню. Эта команда может использоваться только внутри блока описания меню. Команда MENUCOLOR имеет следующий формат:

MENUCOLOR=x[,y]

Параметр x задает цвет текста элементов меню, а параметр y задает цвет фона меню. Цвет определяется числами от 0 до 15 в соответствии со следующей таблицей:

Число Цвет
0 черный
1 голубой
2 зеленый
3 синий
4 красный
5 малиновый
6 коричневый
7 белый
8 серый
9 светло-голубой
10 светло-зеленый
11 светло-синий
12 светло-красный
13 светло-малиновый
14 желтый
15 ярко-белый

Не задавайте одинаковых значений для x и y, так как в этом случае текст элементов меню сольется с фоном.

MENUDEFAULT

Определяет конфигурацию, загружаемую по истечении заданного времени, если пользователь не выбрал другую конфигурацию. Команда MENUDEFAULT может использоваться только внутри блока описания меню файла CONFIG.SYS. Формат этой команды представлен ниже:

MENUDEFAULT=blockname[,timeout]

Параметр blockname задает имя блока конфигурации, загружаемого по истечении времени, определенного параметром timeout. Параметр timeout задается в секундах и может быть от 0 до 90 секунд.

MENUITEM

Команда MENUITEM определяет элементы меню конфигурации. Эта команда может использоваться только внутри блока описания меню. В одном меню может быть до девяти элементов. Если этого вам недостаточно, вы можете воспользоваться дополнительным меню (команда <SUBMENU>). Формат команды MENUITEM следует ниже:

MENUITEM=blockname[,menu_text]

Параметр blockname определяет имя блока конфигурации, соответствующего данному элементу меню. Когда пользователь выберет элемент меню, будут выполнены команды из блока конфигурации, имеющего имя blockname. Имя блока должно быть короче 70 символов и не должно содержать следующих символов: слэш (\), обратный слэш (/), двоеточие, точка с запятой, символ равенства и квадратные скобки.

Параметр menu_text определяет текст, который вы желаете отобразить в данном элементе меню. Если параметр menu_text не будет определен, то в меню отобразится название блока конфигурации. Текст задаваемый параметром menu_text должен быть короче 70 символов и может содержать любые символы.

SUBMENU

Команда SUBMENU добавляет новый элемент в главном меню задания конфигурации. При выборе элемента меню, заданного командой SUBMENU, появляется дополнительное меню.

Формат вызова данной команды представлен ниже:

SUBMENU=blockname[,menu_text]

Параметр blockname определяет имя блока описания дополнительного меню. В отличие от блока описания основного меню, имеющего имя [MENU], дополнительное меню должно иметь другое имя. Длинна имени блока дополнительного меню не должна превышать 70 символов. Имя блока не должно содержать символа слэша (\), обратного слэша (/), двоеточия, точки с запятой, символа равенства и квадратных скобок.

Необязательный параметр menu_text определяет текст, соответствующий новому элементу меню. Если вы не укажете параметр menu_text, то в новом элементе меню будет выведено имя блока описания дополнительного меню, заданное первым параметром команды SUBMENU.

Пример использования новых команд

Предположим, что на компьютере IBM PC\AT 386 работают три человека. Первый работает в операционной системе Microsoft Windows и пользуется текстовым процессором Microsoft Word. Второй предпочитает использовать для редактирования документов текстовый редактор Лексикон. Третий не работает ни с Microsoft Windows ни с Лексиконом.

В MS-DOS версии 5.0 каждый из этих пользователей должен был хранить свои версии файлов конфигурации компьютера - CONFIG.SYS и AUTOEXEC.BAT и постоянно их переименовывать.

Операционная система MS-DOS версии 6.0 дополнена новыми командами (описанными выше), предназначенными для организации меню выбора конфигурации на этапе интерпретации файла CONFIG.SYS.

Приведем пример файла CONFIG.SYS, который может быть установлен на данном компьютере:

[Menu]
menuitem=Windows,  Конфигурация  для  Windows
menuitem=Lexicon,  Конфигурация для Лексикона
menuitem=Standart, Стандартная   конфигурация

[Common]
device=c:\dos\himem.sys
dos=high
buffers=15

[Windows]
device=c:dos\emm386 NOEMS
dos=high,umb
devicehigh=c:\dos\SMARTDRV.EXE 2048 1024

[Lexicon]
device=c:\dos\SMARTDRV.EXE 2048
device=c:\dos\setver.sys

[Standart]
device=c:dos\emm386 NOEMS
dos=high,umb
devicehigh=c:\dos\SMARTDRV.EXE 2048
devicehigh=c:\dos\setver.sys

[Common]
files=40

Данный файл CONFIG.SYS содержит описание трех различных конфигураций - конфигурации для работы в среде операцоннной системы Windows, конфигурации для работы с текстовым процессором Лексикон и конфигурации для работы в операцонной системе MS-DOS.

Для всех трех конфигураций исполняются команды, находящиеся в блоке [Common]. Там расположены две команды: DEVICE=C:\DOS\HIMEM.SYS и DOS=HIGH. Эти команды загружают менеджер расширенной памяти HIMEM.SYS, и разрешают MS-DOS использовать область старшей памяти (HMA).

После выполнения этих двух команд на экране появляется основное меню, определенное в блоке [Menu]:

_  Конфигурация  для  Windows
   Конфигурация для Лексикона
   Стандартная   конфигурация

Когда вы выберете конфигурацию, которую желаете загрузить, нажмите клавишу <Enter>. После этого будут выполнены команды из соответствующего выбранному элементу меню блока - [Windows], [Lexicon] или [Standart].

В заключение выполняется команда files=40, расположенная в последнем блоке [Common]. На этом интерпретация файла CONFIG.SYS заканчивается и MS-DOS начинает выполнять командный файл AUTOEXEC.BAT.

При необходимости вы можете выполнить ветвление внутри файла AUTOEXEC.BAT, основываясь на выбранной в меню файла CONFIG.SYS конфигурации. Для этого предназначена специальная переменная окружения CONFIG. При выполнении команд файла CONFIG.SYS, переменной CONFIG присваивается имя блока выбранной конфигурации.

В командном файле AUTOEXEC.BAT вы можете проверять значение переменной CONFIG и в зависимости от ее значения выполнять различные команды. Для проверки состояния переменной окружения CONFIG можно воспользоваться командами <GOTO> и <IF>.

Рассмотрим в качестве примера AUTOEXEC.BAT для предыдущего примера.

set temp=c:\temp

c:\dos\mode >nul CON CP PREP=((866) c:\dos\ega.cpi)
c:\dos\mode >nul CON CP SEL=866

loadhigh c:\ut\swakeyb.com

rem !!! Преходим к метке, соответствующей значению
rem !!! переменной окружения CONFIG

goto %config%

:Windows

        path c:\win;c:\dos;e:\nc;c:\ut;d:\nu7;e:\bc\bin;d:\winword;

        loadhigh c:\win\SMARTDRV.EXE 2048 1024
        loadhigh c:\win\mouse.com
        win

        goto end_

:Lexicon

        path c:\lex;c:\dos;e:\nc;c:\ut;d:\nu7;e:\bc\bin;

        c:\dos\SMARTDRV.EXE 2048
        c:\mouse\mouse.com

        lex
        goto end

:Standart

        path c:\dos;e:\nc;c:\ut;d:\nu7;e:\bc\bin;

        loadhigh c:\dos\SMARTDRV.EXE 2048
        loadhigh c:\mouse\mouse.com

        nc

        goto end

:end

Когда MS-DOS начинает выполнять команды из файла AUTOEXEC.BAT, сначала происходит установка переменной окружения TEMP, затем загружаются шрифты, содержащие символы кириллицы.

Затем, по команде GOTO %CONFIG%, управление передается на метку, соответствующую имени выбранного блока конфигурации. Имена блоков конфигурации перечислены в блоке описания меню в файле CONFIG.SYS.

Таким образом, в зависимости от того, какая конфигурация будет выбрана в меню, управление перейдет на одну из трех меток - Windows, Lexicon или Standart. При этом для каждой конфигурации выполняются только свои команды. После выполнения команд, следующих за метками, управление переходит на метку END и исполнение командного файла AUTOEXEC.BAT завершается.

Например, если при интерпретации файла CONFIG.SYS, вы выбрали элемент основного меню с надписью "Конфигурация для Windows", то переменная окружения CONFIG принимает значение Windows и управление перейдет на метку :Windows.

Здесь происходит установка переменной окружения PATH, загружается драйвер дискового кеша и драйвер мыши. Затем происходит загрузка операционной системы Windows.

[Назад] [Содеожание] [Дальше]