Фигурнов В. Э. Ф49 ibm pc для пользователя. Изд. 7-е, перераб и доп
Вид материала | Книга |
СодержаниеBe weekday fC C:\BAT\NDD_DATE.2 C:\BAT\NDD_DATE. Be shiftstate Be shiftstate Be weekday Be shiftstate Часть 8. Настройка конфигурации MS DOS Часть 8. Настройка конфигурации MS DOS Goto %config |
- Курс лекций и практикум. 6-е изд., перераб и доп, 44.04kb.
- В. А. Алексунина 3-е изд., перераб и доп. М.: Дашков и К°, 2005. 716с, 8.09kb.
- Карпенков С. Х. Концепции современного естествознания: Учеб для вузов. 6-е изд., перераб, 1235.1kb.
- Тощенко Ж. Т. Социология: Общий курс. 2-е изд., доп и перераб. М.: Юрайт-М, 2001. 527, 49.36kb.
- Фролов И. Т. и др. 3-е изд, 14108.71kb.
- Лаврехин Ф. А. и Панкова С. В. Биология пчелиной семьи. Изд. 2-е, перераб и доп. М.,, 1857.45kb.
- Текст приводится по сборнику Конституции зарубежных государств: Учебное пособие/Сост, 2055.3kb.
- Сборник руководящих документов по заповедному делу, 11587.13kb.
- "Обучение детей технике рисования" Изд. 2-е, перераб и доп. М., «Просвещение», 1970., 1146.19kb.
- Основные модели бухгалтерского учета и анализа в зарубежных странах : учеб пособие, 475.04kb.
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
команды, выполняемые всегда (для всех конфигураций)