Глава 40. Настройка конфигурации DOS Установка
переменных
окружения Часто используемые
переменные
окружения Примеры Запуск необходимых
программ Загрузка экранных
шрифтов Драйверы
клавиатуры формацию о текущем каталоге и символ ">", например C:\WORK\DOC> . Такое приглаше-
ние обычно и используется. Замечании. Если при запуске DOS был установлен драйвер ANSI.SYS, то в приглашении
DOS можно использовать различные цвета символов и фона. Как указывалось в главе 21, DOS имеет специальную область памяти, называемую
окружением (environment), в которой она хранит набор строк символов, которые мо-
гут использоваться программами. Каждая строка символов в окружении имеет вид
имя-переменной=значение , где имя-переменной Ч это строка символов, не содер-
жащая знаков равенства и пробелов, а значение Ч любая строка символов. Для уста-
новки переменных окружения может использоваться команда DOS Set. Формат коман-
ды: set переменная = значение Здесь переменная Ч любая строка, не содержащая знаков равенства и пробелов, а
значение Ч любая строка символов. При выполнении команды DOS преобразует в
имени переменной (но не в значении) строчные буквы в прописные. Наиболее часто используются следующие переменные окружения: TEMP Ч указывает имя каталога, в котором многие программы создают временные фай-
лы; ТМР Ч отдельные старые программы создают временные файлы не в каталоге, заданном переменной TEMP, а в каталоге, заданном переменной ТМР; BLASTER Ч указывает параметры звуковой карты, без этого некоторые DOS-программы
не могут работать с Sound Blaster-совместимыми звуковыми картами. Например,
SET BLASTER=a330 19 d1 t2 сообщает программам, что звуковая карта имеет базо-
вый порт ввода-вывода 330, ей назначено прерывание IRQ номер 9, канал DMA 1,
а тип карты Ч 2 (совместимый с Sound Blaster Pro); COMSPEC Ч указывает имя и расположение командного интерпретатора DOS (обычно
Ч COMMAND.СОМ). Переменная COMSPEC устанавливается также командой
Shell файла CONFIG.SYS (см. выше). set TEMP- C:\WINDOWS\TEMP
set ТМР- C:\WINDOWS\TEMP
SET BLASTER-аЗЗО 19 d1 t2
set COMSPEC=C:\COMMAND.COM Замечание. Если размер области, выделенной для переменных окружения, оказывается
недостаточным, при выполнении команды Set будет выдано сообщение "Out of environment
space". Вы можете увеличить размер этой области, задав значение параметра /Е в команде
Shell файла CONF16.SYS (см. выше). В файл AUTOEXEC.BAT целесообразно включить команды запуска программ, которые
устанавливают привычную рабочую обстановку на компьютере. Однако излишне пере-
гружать файл AUTOEXEC.BAT не следует, так как это увеличивает время загрузки.
Лучше туда включать только команды для запуска самых необходимых программ, уда-
ляя или превращая в комментарии те команды, которые больше не нужны. Особенно
следует обращать внимание на запуск резидентных программ, поскольку они занимают
столь ценную оперативную память. Ниже обсуждаются программы, которые наиболее часто включаются в файл AU-
TOEXEC.BAT. Если видеоконтроллер компьютера не русифицирован аппаратно, то для отображения
русских букв в текстовом режиме монитора следует предварительно загрузить русские
буквы в знакогенератор видеоконтроллера. Как уже говорилось в параграфе 40.5, в MS
DOS, начиная с версии 6.22, это можно сделать с помощью команды Mode. Необходи-
мо только, чтобы в файле CONFIG.SYS был установлен драйвер DISPLAY.SYS. Это
делается командами (предполагается, что файлы MS DOS находятся в каталоге
C:\EXE\MSDOS): MODE CON CODEPAQE PREPARE=((866.) C:\EXE\MSDOS\EGA3.CPI)
MODE CON CODEPAGE SELECT=866 В предыдущих версиях DOS (до 6.22) можно использовать соответствующие програм-
мы-русификаторы, например UNISCR Л.Г.Бунича, Beta Plus фирмы ПараГраф и т.д. Для того чтобы в программах DOS с клавиатуры можно было вводить русские буквы,
необходимо установить драйвер клавиатуры, который мог бы переводить клавиатуру в
режим ввода русских букв. Как уже говорилось в параграфе 40.6, в версиях MS DOS,
Часть 8. Настройка конфигурации MS DOS Программы для
облегчения
редактирования
командной строки Программа MSCDEX Ч
доступ к компакт-
дискам Программа SMARTDRV
Ч кэширование
дисков начиная с 6.22, для русификации клавиатуры можно использовать драйвер KEYB. Это
может делаться командой (мы предполагаем, что файлы MS DOS располагаются в ка-
талоге C:\EXE\MSDOS): KEYB RU, ,C:\EXE\MSDOS\KEYBRD2.SYS После установки драйвера KEYB переключение на латинский и русский режимы кла-
виатуры осуществляется нажатиями комбинаций клавиш [АГГ) [левый Shift) и
ГАТТ) (Правый Shift) соответственно. Можно использовать и другие драйверы клавиатуры, тем более что они занимают
меньше места в памяти, позволяют задавать раскладку клавиатуры, вводить псевдо-
графические символы, указывать цветом бордюра текущий режим работы клавиатуры.
Так, драйвер UNIKBD Л.Г.Бунича при запуске командой UNIKBD /1В2,4 /KA:LSRS выво-
дит в "русском" режиме зеленую кайму у экрана, а в "псевдографическом" режиме Ч
красную кайму. Переключение на латинский режим осуществляется нажатием левой
клавиши (Shift), на русский режим Чнажатием правой клавиши (Shifti, на псевдо-
графический режим Ч обеих клавиш (Shift). Можно задавать и раскладку клавиату-
ры. Замечание Часто функции драйвера клавиатуры и загрузки экранных шрифтов объединя-
ются в одной программе. Возможности по редактированию вводимых команд, предоставляемые DOS, весьма
ограничены и неудобны. Поэтому многие пользователи запускают какую-либо специ-
альную резидентную программу, позволяющую выводить в командную строку одну из
нескольких последних введенных команд и редактировать команду в командной строке
более удобным образом. Описание возможностей одной из таких программ Ч про-
граммы DOSKEY Ч приведено в главе 16. Впрочем, если Вы применяете программу-
оболочку типа Norton Commander, то программа для редактирования командной стро-
ки Вам не требуется Ч все необходимые функции обычно выполняет программа-
оболочка. Если Ваш компьютер оснащен дисководом для компакт-дисков, то для обеспечения
доступа к компакт-дискам потребуется программа MSCDEX.EXE (см. параграф 40.8).
Эта программа позволяет работать с компакт-диском как с большой дискетой, хотя на
самом деле данные на компакт-диске хранятся совершенно по-другому. Команда вызова
программы MSCDEX.EXE может быть такой: С: \EXE\MSDOS\MSCDEX. EXE /D: MSCDOO Здесь предполагается, что программа находится в каталоге C:\EXE\MSDOS, а
MSCDOO Ч имя, которое было присвоено дисководу при вызове драйвера, обеспечи-
вающего физический доступ к компакт-диску (см. параграф 40.8). Если Ваш компьютер оснащен хотя бы 1 Мбайтом оперативной памяти, то для повы-
шения производительности может быть очень полезно использовать кэширование дис-
ков. Для этого можно использовать программу SMARTDRV (см. параграф 40.9). Уп-
рощенный формат вызова программы: SMARTDRVC. EXEj ^размер-кэша (paзмep-кэшa-noд-Windows')) [/X] Здесь параметр размер-кэша указывает размер кэша в Кбайтах при работе в DOS;
параметр размер-кэша-под-Windows Ч размер кэша (в Кбайтах) при работе в
Windows. Если размеры кэша не заданы, они устанавливаются по умолчанию. Пара-
метр /X, если он задан, запрещает кэширование операций записи со всеми дисками,
кроме тех, для которых оно явно включено (это снижает производительность кэширо-
вания, но обеспечивает его полную безопасность). Более подробно использование про-
граммы SMARTDRV описано в параграфе 40.9. Например, команда вызова программы может быть такой: C:\EXE\MSDOS\SMARTDRV.EXE
2048 1536 /X Ч здесь предполагается, что файл SMARTDRV.EXE находится в каталоге
C:\EXE\MSDOS, размер кэша устанавливается 2048 Кбайт (2 Мбайта) при работе в
DOS и 1536 Кбайт (1,5 Мбайта) при работе в Windows, а кэширование записи запре-
щается. Замечания. 1. Для кэширования дисков программой SMARTDRV необходимо, чтобы ком-
пьютер был оснащен расширенной памятью и чтобы диспетчер расширенной памяти
(например, HIMEM.SYb) был загружен до запуска программы SMARTDRV. Для кэширова-
ния компакт-дисков необходимо, чтобы программа MSCDEX была запущена до
SMARTDRV. Глава 40. Настройка конфигурации DOS Вызов антивирусных
программ Обслуживание и
резервирование
дисков Программа-оболочка Пример файла
AUTOEXEC.BAT 2. Кэширование дисков не нужно при наличии кэшированного контроллера дисков (там
кэширование осуществляет аппаратно сам контроллер), а также при работе в среде графи-
ческой оболочки Windows 95, которая кэширует диски сама. Для защиты от вирусов в файл AUTOEXEC.BAT часто вставляют команды вызова ан-
тивирусных программ. Здесь применяются три типа программ: Х программы-ревизоры выявляют изменения на дисках и при обнаружении подозри-
тельных (характерных для вирусов) изменений докладывают об этом пользователю.
Примером таких программ является ADinf из антивирусного комплекса DSAV фир-
мы "Диалог-Наука"; Х программы-детекторы проверяют файлы на дисках на наличие вирусов. Приме-
рами таких программ являются Aidstest и Dr. Web из антивирусного комплекса
DSAV фирмы "Диалог-Наука", программа NAV из Norton Antivirus. Иногда про-
граммы-детекторы работают "в паре" с программами-ревизорами. Например, про-
граммы Aidstest и Dr. Web могут проверять только файлы из списка новых и изме-
ненных файлов, составленного программой ADinf: Х программы-сторожа Ч это резидентные программы, которые могут проверять
запускаемые программы на наличие в них вирусов, вставляемые дискеты Ч на за-
раженность загрузочным вирусом, а также "перехватывать" запросы на выполнение
различных "подозрительных" действий, т.е. операций, которые используют компью-
терные вирусы для своего "размножения" и для порчи информации в компьютере
(скажем, запись в файл COMMAND.СОМ или в загрузочный сектор на жестком
диске). При выявлении таких ситуаций на экран компьютера выводится сообщение,
и пользователь может выбрать, какое действие следует предпринять. Примерами
таких программ являются NAVTSR из Norton Antivirus, NA.VBRES из Norton
Antivirus для Windows 95. Наилучшую защиту от вирусов дает совместное использование всех трех' типов про-
грамм. Более подробно о защите от вирусов говорится в главах 11 и 36. Некоторые пользователи вставляют в файл AUTOEXEC.BAT команды для выполнения
программ обслуживания дисков (см. главу 35): Х Image Ч создание копий системных областей диска: Х NDD Ч проверка файловой структуры и поверхности диска; Х SpeeDisk Ч оптимизация размещения файлов на диске. Иногда в файл AUTOEXEC.BAT вставляют и команды для запуска резервирования
файлов (в этой книге программы резервирования для DOS не описываются, а о резер-
вировании в среде Windows говорится в главе 50). Однако выполнение программ обслуживания дисков и резервирования занимает много
времени (за исключением, разве лишь, выполнения программы Image), Да и выпол-
няться многие из этих программ должны не каждый раз при загрузке DOS, а, скажем,
раз в день или даже раз в неделю. Поэтому ниже мы опишем, как можно выполнять
отдельные команды или группы команд из файла AUTOEXEC.BAT лишь раз в день или
раз в неделю, а также пропускать части файла AUTOEXEC.BAT с помощью нажатия
на ту или иную клавишу. Там же будет приведен пример вызова программ обслужива-
ния дисков. Если Вы привыкли использовать какую-либо программу-оболочку типа Norton
Commander, то целесообразно вставить в конец файла AUTOEXEC.BAT команду для
запуска соответствующей программы. В заключение приведем пример файла AUTOEXEC.BAT с комментариями. В примере
предполагается, что файлы MS DOS находятся в каталоге C:\EXE\MSDOS. @>echo off rem Установка пути поиска программ
path С:\ЕХЕ; C:\EXE\MSDOS; C:\EXE\NU; C:\WINDOWS; D:\BC rem Установка вида приглашения DOS
prompt $p$g rem Установка переменных окружения
set TEMP= C:\WINDOWS\TEMP
set TMP = C:\WINDOWS\TEMP
SET BLASTER=a330 i9 d1 12 rem Загрузка русских букв в знакогенератор
MODE CON CODEPAGE PREPARE=((866) C:\EXE\MSDOS\EGA3.CPI)
MODE CON CODEPAGE SELECT=866
rem Запуск драйвера клавиатуры
Часть 8. Настройка конфигурации MS DOS KEYB RU, ,C:\EXE\MSDOS\KEYBRD2.SYS rem Запуск командного файла для проверки на наличие вирусов
call C:\EXE\ANTIVIR\VIRTEST.BAT rem Запуск программы MSCDEX (доступ к компакт-диску)
С: \EXE\MSDOS\MSCDEX. EXE /D: MSCDOO
rem Запуск программы SMARTDRV (кэширование дисков)
C:\EXE\MSDOS\SMARTDRV.EXE /X
rem Запуск программы Norton Commander
NC c^ При первом чтении Вы можете остаток главы пропустить
или просмотреть "по диагонали". 40. 12. Пропуск части файла AUTOEXEC.BAT Зачем это нужно Выполнение команд
раз ч день Пример Многие пользователи вставляют в файл AUTOEXEC.BAT команды для выполнения
программ обслуживания дисков (см. главу 35) или резервирования данных. Вроде бы
это удобно, но многие из этих программ должны выполняться не каждый раз при за-
грузке DOS, а раз в день или даже раз в неделю. Поэтому таким пользователям прихо-
дится завершать эти программы принудительно, когда они запускаются лишний раз,
либо вставлять в файл AUTOEXEC.BAT меню, в котором требуется выбрать тот или
иной вариант действий (см. п. 40.15). Все это достаточно утомительно. Однако суще-
ствуют и более удобные и не требующие внимания пользователя способы выбора того
или иного варианта выполнения файла AUTOEXEC.BAT (как, впрочем, и любого дру-
гого командного файла). Ниже мы опишем, как можно выполнять отдельные команды
или группы команд из файла AUTOEXEC.BAT: Х лишь раз в день, Х в зависимости от дня недели, _____ ____ Х в зависимости от нажатия или ненажатия на клавишу (ГзТпТГ). (АГГ) или ГсТТГ)). Чтобы та или иная группа команд файла AUTOEXEC.BAT выполнялась лишь раз в
день, можно воспользоваться следующим приемом. 1. По окончании выполнения данной группы команд (а еще лучше Ч при ее успешном
выполнении, если это можно проверить) следует записать в файл на диске текущую
дату. Это можно сделать командой echo. \да.1е>имя-файла-1 . Здесь команда echo.
порождает пустую строку, которая подается на вход команды date, поэтому коман-
да date не запрашивает ввод с клавиатуры. А выдача команды date записывается в
файл на диске. 2. Перед выполнением данной группы команд также следует записать в файл на диске
текущую дату. Например, это можно сделать командой echo. ',йа1:в>имя-файла.-2 . 3. Сравнить полученные в п. 1 и п. 2 файлы. Это можно сделать командой fc амя-файла-1 ам.я-файла-2 ', find "FC: no differences" > nul Здесь результаты сравнения файлов подаются на вход программы find, которая
ищет в них строку "FC: no differences". Выдача программы find подавляется
(отправляется в устройство nul) Ч нас интересует только код возврата данной
программы. Кстати, наличие первого файла на диске не обязательно. 4. Если в результате выполнения приведенной в п. 3 команды сгенерирован код воз-
врата 1, то файлы одинаковы, то есть группа команд сегодня уже выполнялась, а
при коде возврата 0 эта группа команд сегодня не выполнялась. Пусть проверку диска С: программой NDD и создание копий системных областей диска С:
программой Image желательно выполнять один раз в день. Для этого в файл AUTO-
EXEC.BAT можно включить следующую последовательность команд (здесь мы записываем
файлы в каталог С: \ВАТ, так что этот каталог должен существовать): find "FC: differences' echo. ;date>C:\BAT\NDD_DATE.2
fc C:\BAT\NDD_DATE.2 C:\BAT\NDD_DATE.
if ERRORLEVEL 1 goto NO_NDD
NDD C: /C
Image C: Глава 40. Настройка конфигурации DOS Dh'ni) "ч<^ i Hi-' ком-и i/i
и 3>)ЧЦ(:ИМ01..:1 и
')! .Ц'!Я Надели Примеры Вьтолненио комянд
и записимос и.'-
of нажатия клавиш Пример echo. !date>C:\BAT\NDD_DATE.1
: NO_NDD Некоторые программы желательно выполнять не раз в день, а раз в неделю или по оп-
ределенным дням недели. Для анализа дня недели можно воспользоваться функцией
WEEKDAY программы BE из комплекса Norton Utilities. Команда BE WEEKDAY выдает
код возврата 1 в воскресенье, 2 в понедельник и т..д., 7 Ч в субботу. Этот код возврата
можно проверить с помощью переменной ERRORLEVEL в команде IF. Пусть по пятницам следует выполнять полную проверку диска С: с помощью команды NDD
С: /С, а в остальные дни недели Ч только проверку файловой структуры с помощью коман-
ды NDD С: /0. Это можно осуществить с помощью следующего фрагмента файла AUTO-
EXEC.BAT (мы предполагаем, что программа BE находится в одном из каталогов, указан-
ных в команде Path): BE WEEKDAY if ERRORLEVEL 7 goto NOFRIDAY
If ERRORLEVEL 6 goto FRIDAY
: NOPRIDAY
NDD C: /Q
goto NDD_DONE
: FRIDAY
NDD C: /C
: NDD_DONE На самом деле данный фрагмент файла AUTOEXEC.BAT следует включить во фрагмент,
приведенный в предыдущем примере. Тогда полная проверка диска С: будет выполняться
раз в неделю по пятницам, а в остальные дни (но не чаще раза в день) Ч проверка файло-
вой структуры диска. Кроме того, раз в день будет выполняться создание копий системных
областей диска С: программой Image: echo. !date>C:\BAT\NDD_DATE.2
fC C:\BAT\NDD_DATE.2 C:\BAT\NDD_DATE.
if ERRORLEVEL 1 goto NO_NDD
BE WEEKDAY
7 goto NOFRIDAY
6 goto FRIDAY differences" > nul find "FC: if ERRORLEVEL
if ERRORLEVEL
: NOFRIDAY
NDD C: /Q
goto NDD_DONE
: FRIDAY
NDD C: /C
: NDD_DONE
Image C: echo. ;date>C:\BAT\NDD_DATE.1
: NO_NDD MS DOS позволяет пользователю влиять на процесс начальной загрузки с помощью
нажатия на определенные клавиши. Например, если при появлении сообщения
"Starting MS DOS..." нажать на клавишу (JF8], то MS DOS перейдет в режим пошаго-
вого выполнения файлов CONFIG.SYS и AUTOEXEC.BAT. Это удобно, так как при
обычном выполнении начальной загрузки не требует никаких действий от пользовате-
ля и не беспокоит его какими-либо сообщениями. В командных файлах, в частности, в файле AUTOEXEC.BAT также можно выполнять
различные действия в зависимости от того, нажата или не нажата определенная кла-
виша. Для этого недели можно воспользоваться функцией SHIFTSTATt программы BE
из комплекса Norton Utilities. Команда BE SHIPTSTATE выдает код возврата 1 при нажа-
тии правой клавиши [Shifti, 2 при нажатии левой клавиши (Shift), 3 при нажатии
клавиши [Ctrl), 4 при нажатии клавиши ГАГГ). При нажатии нескольких из указанных
клавиш приведенные коды суммируются. Например, при нажатии (Ctrl) и левой кла-
виши [Shift) код возврата будет Ь. Код возврата можно проверить с помощью пере-
менной ERRORLEVEL в команде IF. 1усть выполнение команды NDD С: /С надо отменить, если пользователь нажал (^^J,
Q^l или (AID. Это можно осуществить с помощью следующего фрагмента файла ATJTO-
D^EC.BAT (мы предполагаем, что программа BE находится в одном из каталогов, указан-
ных в команде Path): BE SHIFTSTATE if ERRORLEVEL 1 goto NO_NDD
NDD C: /C
: NO_NDD
Часть 8. Настройка конфигурации MS DOS Пример процедуры
обслуживания диска В заключение приведем пример фрагмента файла AUTOEXEC.BAT, отвечающего за
запуск программ обслуживания диска: NDD, SpeeDisk и Image. Раз в неделю по пят-
ницам выполняется полная проверка диска С: программой NDD и оптимизация разме-
щения файлов на диске программой SpeeDisk. В остальные дни недели раз в день вы-
полняется проверка файловой структуры диска программой NDD. И ежедневно, неза-
висимо от дня недели, выполняется создание копий системных областей диска С: про-
граммой Image. В примере предполагается, что каталог С:\ВАТ существует, а про-
грамма BE находится в одном из каталогов, указанных в команде Path. BE SHIFTSTATE С: \BAT\NDD_DATE.
NO NDD find "FC: differences" nul if ERRORLEVEL 1 goto NO_NDD
echo. ;date>C: \BAT\NDD_DATE. 2
fc C: \BAT\NDD_DATE. 2
if ERRORLEVEL 1 goto
BE WEEKDAY if ERRORLEVEL 7 goto NOFRIDAY
if ERRORLEVEL 6 goto FRIDAY
: NOFRIDAY
NDD C: /Q
goto NDD_DONE
: FRIDAY
NDD C: /C
BE SHIFTSTATE if ERRORLEVEL 1 goto NO_NDD
SPEEDISK C: /FD
: NDD_DONE
BE SHIFTSTATE if ERRORLEVEL 1 goto NO_NDD
Image C: echo. !date>0: \BAT\NDD_DATE. 1
: NO_NDD Данный фрагмент может быть вставлен в конец файла AUTOEXEC.BAT, перед коман-
дой вызова программы-оболочки. 40.13. Несколько файлов конфигурации Часто оказывается, что для разных программ лучше иметь различную конфигурацию
компьютера, например для работы в DOS Ч одну, а для Windows Ч другую. Один из
способов добиться этого Ч создать версии файлов AUTOEXEC.BAT и CONFIG.SYS
для каждой требуемой конфигурации и с помощью специального командного файла
перезагружаться с нужными файлами конфигурации. Пусть, например, версии файлов AUTOEXEC.BAT и CONFIG.SYS записываются в
каталог C:\EXE\CONFIG с именами AUTOEXEC.ххх и CONFIG.xxx, где ххх соответ-
ствует имени комплекса программ, для которого предназначены файлы конфигурации
(например, DOS Ч для работы в DOS, WIN Ч для Windows, TD Ч для Turbo Debug-
ger и т.д.). Тогда с помощью следующего командного файла REBOOT.BAT можно бы-
стро перезагрузиться с нужными файлами конфигурации: @>echo off if /%^ == / goto NoParm if not exist c:\exe\config\config.%1 goto NoCONF
if not exist c:\exe\config\autoexec.%1 goto NoAUTO
del c:\config.bak > nul
del c:\autoexec.bak > nul
ren c:\config.sys c:\config.bak
ren c: autoexec.bat c:\autoexec.bak
copy c:\exe\config\config.%1 c:\config.sys > nul
copy c:\exe\config\autoexec.%1 c:\autoexec.bat > nul
smartdrv /c
be reboot
: NoParm echo He задан параметр командного файла
goto exit
: NoCONF echo He найден файл C:\EXE\CONFIQ\CONFIQ.%1
goto exit
: NoAUTO
echo He найден файл C:\EXE\CONFIG\AUTOEXEC.%1 : exit Например, REBOOT WIN Х перезагрузка с файлами CONFIG.WIN и AUTOEXEC.WIN. ..,..-;' Хl,,.Х. 1. Строка SMARTDRV /Собеспечивает сброс данных из кэша на диск. Она нужна
лишь при кэшировании записи, если Вы используете для кэширования программу
SMARTDRV.ЕХЕ. При использовании других программ кэширования эту строку следует
заменить. Если же кэш отсутствует или не оптимизирует запись на диск, эту строку можно
убрать. 2. Аналогичным образом обеспечивается загрузка старой версии DOS при загрузке
Windows 95. Там версии файлов AUTOEXEC. BAl и CONHG.SY& для загрузки старой вер-
сии DOS называются AUTOEXEC.DOS и CONFIG.DOS, и расположены они в корневом
каталоге загрузочного диска. А версии файлов AUTOEXEC.BAT и CONFIG.SYS, исполь-
зуемые самой Windows 95, переименовываются при загрузке старой версии DOS в AUTO-
EXEC.W40 и CONFIG.W40. Аналогично переименовываются также файлы 10.SYS и
MSDOS.SYS. Только выполняются эти действия не командным файлом, а программой за-
грузки Windows 95. 1иапоговые файлы конфигурации 4iH^;m"> Х m'ltWlii <Д
I'IG К^^ /^ u i (.Н_Л1.'. -..,. IJ/4 1 Еще один способ обеспечить различные варианты конфигурации компьютера при на-
чальной загрузке Ч выводить в ходе начальной загрузки запросы и изменять конфигу-
рацию в зависимости от ответа пользователя. Простейший способ диалогового конфигурирования состоит в том, что некоторые ко-
манды файла CONFIG.SYS можно пропускать. Если после имени команды (перед зна-
ком равенства) в команде файла CONFIG.SYS поставить знак вопроса, то при выпол-
нении файла CONFIG.SYS DOS выведет команду на экран и спросит, надо ли ее вы-
полнять "[Y/N] ?". Если ответить Q, то команда будет выполнена, если (D Ч то нет.
Например, при наличии в файле CONFIG.SYS команды devlce7=c:\td\td386.sys DOS
будет в процессе начальной загрузки сообщение devlce?=c:\td\td386,sys [Y/N]? и
выполнять или пропускать (игнорировать) данную команду в зависимости от ответа
пользователя. Если при различных конфигурациях компьютера файл CONFIG.SYS может быть одним
и тем же, можно с помощью программы CHOICE или аналогичной ей организовать
выбор из меню в файле AUTOEXEC.BAT. Формат команды: CHOICE (JC'.cnucoK-cuMeoAoej {f\Х.cuм.вoл,чucлo-ceк.унд} C/N] сообщение Здесь параметр сообщение указывает сообщение, выводимое на экран (обычно оно в
команде заключается в кавычки). Параметр /C'.cnucoK-символов указывает допустимые
символы, которые может ввести пользователь в ответ на сообщение. Если данный па-
раметр не указан, допустимые символы Ч это Y и N . Параметр /N (если он указан)
отменяет вывод подсказки с перечислением допустимых символов. Параметр
/^'.символ, число-секунд (если он указан) задает ответ по умолчанию (символ), кото-
рый принимается, если пользователь по истечении заданного параметром число-секунд
времени не нажал ни на одну клавишу. Программа Choice выводит указанное сообщение и ждет, пока пользователь не введет
один из указанных в списке символов. При указании параметра /Т, если в течение ука-
занного в этом параметре времени пользователь не нажал ни на одну клавишу, то при-
нимается указанный в этом параметр ответ. После выполнения программы значение
переменной ERRORLEVEL устанавливается равным номеру введенного символа в спи-
ске. Пример ^ приведенном ниже примере у пользователя запрашивается, какую проверку диска С: сле- ' дует делать: полную, краткую или никакую.
echo Проверка диска: F - полная, Q -
choice /c:FQN /T:N,10 /N "Введите P,
if error-level 3 goto FULLCHK
if errorlevel 2 goto QUICKCHK
echo Проверка диска не производится
goto exit
: FULLCHK
NDD C: /C краткая,
Q или N Часть 8. Настройка конфигурации MS DOS Меню в файле
CONFIG.SYS Блок COMMON Блок MENU Команды для
организации меню goto exit
: QUICKCHK
NDD С: /Q
: exit Если пользователь в течение 10 секунд не выбрал ответ, принимается ответ N. Следует за-
метить, что проверки значения переменной ERRORLEVEL следует располагать в порядке
убывания значений: сначала проверять на самое большое значение, затем Ч на следующее
по убыванию и т.д. Начиная с версии 6.0 MS DOS в файле CONFIG.SYS стало возможно организовывать
меню. Для этого файл CONFIG.SYS стал рассматриваться не просто как последова-
тельность строк, а как совокупность блоков. Блоки Каждый блок начинается со строки, в которой приводится (начиная с первой колонки)
имя блока в квадратных скобках. Затем следуют команды, относящиеся к данному
блоку. Эти команды могут либо задавать те или иные действия по установке конфигу-
рации (как это было описано выше), либо определять меню, выводимое при начальной
загрузке компьютера. Блок может выполняться или не выполняться, в зависимости от
выбора пользователя в выведенном меню. При выполнении блока его команды выпол-
няются по очереди. Блок с именем COMMON (таких блоков в файле CONFIG.SYS может быть несколько)
выполняется всегда. Если в начале файла CONFIG.SYS нет заголовка блока, считает-
ся, что там стоит заголовок [COMMON], то есть строки файла CONFIG.SYS до перво-
го заголовка блока выполняются всегда. Это обеспечивает совместимость со старым
(до версии 6.0 MS DOS) форматом файла CONFIG.SYS, в котором содержимое
CONFIG.SYS не разделялось на блоки. Блок с именем MENU содержит начальное (стартовое) меню, выводимое при загрузке
компьютера. Это меню выводится до выполнения всех других команд файла CON-
FIG.SYS, даже если блок с именем MENU находится не в начале файла CONFIG.SYS. Для организации меню в файле CONFIG.SYS используются следующие команды: MENUITEM имя-блока, сообщение Ч определение пункта меню;
SUBMENU имя-блока-меню, сообщение Ч определение пункта меню, при выборе которого выводится подменю (эта возможность используется редко);
MENUDEFAULT имя-блока, число-секунд Ч определение пункта меню, выполняемо-
го "по умолчанию": при нажатии клавиши (ТпТеТ) или по истечении заданной в
команде задержки. Как правило, данные команды записываются в блок с именем MENU . При выполнении блока меню DOS выведет указанные в предложениях MENUITEM и
SUBMENU сообщения и предложит выбрать номер пункта. Пример При наличии в файле CONFIG.SYS команд: [MENUJ MENUITEM=DOSCONF, Работа в DOS
MENUITEM=WINDOWS, Работа в Windows
MENUITEM=TD, Использование Turbo Debugger
MENUDEFAULT=WINDOWS, 5 DOS выведет при начальной загрузке меню: MS DOS 6.22 Startup Menu 1. Работа в DOS 2. Работа в Windows 3. Использование Turbo Debugger Вы должны будете нажать (i), (D или (D, при этом будут выполняться команды из
блоков [DOSCONF], [WINDOWS] и [TD] соответственно (а кроме того, команды из блоков
[COMMON]). Если Вы нажмете (Enter) или не ответите в течение 5 секунд, будет принят
ответ (13 ([WINDOWS]), как это указано в команде MENUDEFAULT. Если бы этой команды
задано не было, DOS ждала бы до тех пор, пока Вы не ответили (Т), (2) или (D. Таким образом, файл CONFIG.SYS в данном случае может иметь вид: [COMMON]
команды, выполняемые всегда (для всех конфигураций) Часть 8. Настройка конфигурации MS DOS Меню в файле
CONFIG.SYS Блок COMMON Блок MENU Команды для
организации меню goto exit
: QUICKCHK
NDD С: /Q
: exit Если пользователь в течение 10 секунд не выбрал ответ, принимается ответ N. Следует за-
метить, что проверки значения переменной ERRORLEVEL следует располагать в порядке
убывания значений: сначала проверять на самое большое значение, затем Ч на следующее
по убыванию и т.д. Начиная с версии 6.0 MS DOS в файле CONFIG.SYS стало возможно организовывать
меню. Для этого файл CONFIG.SYS стал рассматриваться не просто как последова-
тельность строк, а как совокупность блоков. Блоки Каждый блок начинается со строки, в которой приводится (начиная с первой колонки)
имя блока в квадратных скобках. Затем следуют команды, относящиеся к данному
блоку. Эти команды могут либо задавать те или иные действия по установке конфигу-
рации (как это было описано выше), либо определять меню, выводимое при начальной
загрузке компьютера. Блок может выполняться или не выполняться, в зависимости от
выбора пользователя в выведенном меню. При выполнении блока его команды выпол-
няются по очереди. Блок с именем COMMON (таких блоков в файле CONFIG.SYS может быть несколько)
выполняется всегда. Если в начале файла CONFIG.SYS нет заголовка блока, считает-
ся, что там стоит заголовок [COMMON], то есть строки файла CONFIG.SYS до перво-
го заголовка блока выполняются всегда. Это обеспечивает совместимость со старым
(до версии 6.0 MS DOS) форматом файла CONFIG.SYS, в котором содержимое
CONFIG.SYS не разделялось на блоки. Блок с именем MENU содержит начальное (стартовое) меню, выводимое при загрузке
компьютера. Это меню выводится до выполнения всех других команд файла CON-
FIG.SYS, даже если блок с именем MENU находится не в начале файла CONFIG.SYS. Для организации меню в файле CONFIG.SYS используются следующие команды: MENUITEM имя-блока, сообщение Ч определение пункта меню;
SUBMENU имя-блока-меню, сообщение Ч определение пункта меню, при выборе которого выводится подменю (эта возможность используется редко);
MENUDEFAULT имя-блока, число-секунд Ч определение пункта меню, выполняемо-
го "по умолчанию": при нажатии клавиши (Enter) или по истечении заданной в
команде задержки. Как правило, данные команды записываются в блок с именем MENU . При выполнении блока меню DOS выведет указанные в предложениях MENUITEM и
SUBMENU сообщения и предложит выбрать номер пункта. Пример При наличии в файле CONFIG.SYS команд: [MENUJ MENUITEM=DOSCONF, Работа в DOS
MENUITEM=WINDOWS, Работа в Windows
MENUITEM=TD, Использование Turbo Debugger
MENUDEFAULT=WINDOWS, 5 DOS выведет при начальной загрузке меню: MS DOS 6.22 Startup Menu 1. Работа в DOS 2. Работа в Windows 3. Использование Turbo Debugger Вы должны будете нажать (i), (D или CD, при этом будут выполняться команды из
блоков [DOSCONF], [WINDOWS] и [TD] соответственно (а кроме того, команды из блоков
[COMMON]). Если Вы нажмете (Enter) или не ответите в течение 5 секунд, будет принят
ответ (2) ([WINDOWS]), как это указано в команде MENUDEFAULT. Если бы этой команды
задано не было, DOS ждала бы до тех пор, пока Вы не ответили (Т), (2) или CD. Таким образом, файл CONFIG.SYS в данном случае может иметь вид: [COMMON]
команды, выполняемые всегда (для всех конфигураций) Раскраска стартового
. меню Согласование меню
файла CONFIG.SYS
и файла
AUTOEXEC.BAT Пример [MENU] MENUITEM=DOSCONF. Работа в DOS
MENUITEM=WINDOWS, Работа в Windows
MENUITEM=TD, Использование Turbo Debugger
MENUDEFAULT=WINDOWS, 5
[DOSCONF] команды, выполняемые при работе в DOS
[WINDOWS] команды, выполняемые при работе в Windows
[TD] команды, выполняемые при работе с Turbo Debugger
[COMMON]
команды, выполняемые всегда (для всех конфигураций) Здесь первую строку ([COMMON]), как указывалось выше, можно было бы не писать. Кро-
ме того, как указывалось выше, стартовое меню выводится до выполнения каких-либо дру-
гих команд файла CONFIG.SYS, поэтому первый блок [COMMON] с тем же успехом можно
было бы поместить и после строки с командой MENUDEFAULT. Если желательно сделать стартовое меню более привлекательным, Вы можете раскра-
сить его в разные цвета с помощью команды файла CONFIG.SYS MenuColor. Формат
этой команды: КЫ\1СОШЯ=цвет-сим.вола, цвет-фона. Если параметр цвет-фона опус-
тить, то цвет фона будет черным. Цвет символа и цвет фона кодируются числами от О
до 15:0Ч черный, 1 Ч синий, 2 Ч зеленый, 3 Ч сиреневый, 4 Ч красный, 5 Ч ма-
линовый, 6 Ч коричневый, 7 Ч светло-серый, 8 Ч темно-серый, 9 Ч голубой, 10 Ч
ярко-зеленый, II Ч ярко-сиреневый, 12 Ч ярко-красный, 13 Ч ярко-малиновый, 14 Ч
желтый, 15 Ч белый. Следует заметить, однако, что цвета фона с номерами от 8 до 15
употреблять не следует Ч большинство видеоконтроллеров при этом выводит мигаю-
щие символы. Например, MENUCOLOR=14, 1 Ч вывод желтых символов на синем фоне. Замоч.чния 1. Многие программы оптимизации использования памяти не умеют хорошо
оптимизировать файлы CONFIG.SYS, содержащие стартовое меню. Так, при оптимизации
использования памяти программой МегпМакег, описанной в конце этой главы, при оптими-
зации одной ветви файла CONFIG.SYS остальные ветви разоптимизируются. 2. Если в нескольких блоках файла CONFIG.SYS используются дублирующиеся команды,
Вы можете вынести их в отдельный блок и включать туда, где они требуются, командой
иС1-\}ОЕ.=11МЯ-блока . Однако следует заметить, что некоторые программы оптимизации ис-
пользования памяти не умеют оптимизировать файлы CONFIG.SYS с командами INCLUDE.
Так, при оптимизации использования памяти программой MemMaker, описанной в главе 41,
результаты оптимизации блока, вставляемого командой INCLUDE, применяются во всех вари-
антах стартового меню, хотя оптимизация этого блока проводилась, естественно, для како-
го-то одного варианта меню. Очень часто при использовании меню в файле CONFIG.SYS при выборе того или иного
варианта в меню требуется выполнить соответствующие команды и в файле
AUTOEXEC.BAT. Было бы очень неудобно, если бы в файле AUTOEXEC.BAT требова-
лось повторно запрашивать, какой вариант команд надо выполнить. К счастью, без
этого можно обойтись. Имя блока команд, выбранного в меню файла CONFIG.SYS,
автоматически присваивается переменной окружения CONFIG, так что в файле
AUTOEXEC.BAT Вы при необходимости можете задать различные действия в зависи-
мости от значения этой переменной. Для приведенного выше примера меню вфайле CONFIG.SYS Вы можете использовать сле-
дующий фрагмент файла AUTOEXEC.BAT, если в этом файле требуется выполнять разные
команды в зависимости от выбора, сделанного в стартовом меню:
GOTO %CONFIG%
: DOSCONP команды, выполняемые-при работе в DOS
GOTO CONTINUE
: WINDOWS команды, выполняемые при работе в Windows
GOTO CONTINUE
:TD команды, выполняемые при работе с Turbo Debugger
: CONTINUE
команды, выполняемые всегда (для всех конфигураций)
|