Компьютер 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 определены несколько специальных команд:
Команды установки конфигурации компьютера и команды описания меню группируются в так называемых блоках команд и блоках описания меню. Блоки начинаются с заголовков. Заголовок состоит из имени блока, заключенного в квадратные скобки. Блок заканчивается либо заголовком следующего блока, либо концом файла. Для определения в файлах CONFIG.SYS и AUTOEXEC.BAT нескольких конфигураций необходимо выполнить несколько действий:
Рассмотрим подробнее отдельные команды описания меню. INCLUDEКоманда используется для включения команд одного блока конфигурации в другой. Формат данной команды представлен ниже: INCLUDE=blockname Единственный параметр blockname определяет имя включаемого блока конфигурации. MENUCOLORОпределяет цвет текста и цвет фона элементов меню. Эта команда может использоваться только внутри блока описания меню. Команда MENUCOLOR имеет следующий формат: MENUCOLOR=x[,y] Параметр x задает цвет текста элементов меню, а параметр y задает цвет фона меню. Цвет определяется числами от 0 до 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. |