Удобная рабочая обстановка для пользователя ПЭВМ может быть создана в результате продуманного конфигурирования и начальной настройки системы.
DOS дает возможность при запуске машины автоматически задавать определенные начальные условия, которые влияют на дальнейшую работу пользователя.
Осуществляется это с помощью содержимого двух особых файлов: CONFIG.SYS и AUTOEXEC.BAT. Указанные файлы, если они имеются в корневом каталоге системного диска, обрабатываются при любом включении или перезапуске машины.
С помощью файла конфигурации CONFIG.SYS можно расширять операционную систему и изменять некоторые параметры, влияющие на работу внешних устройств. Одно из важнейших свойств DOS состоит в возможности добавления новых внешних устройств и подключения специальных программ, обеспечивающих управление их работой.
Эти программы, называемые драйверами внешних устройств, можно включить в систему, перечислив их в файле CONFIG.SYS. Помимо этого в файле конфигурации можно указать, сколько файлов в системе может быть открыто одновременно, задать количество буферов для обменов с внешними накопителями и некоторые другие параметры.
Пример. Рассмотрим типичный вид файла CONFIG.SYS:
1 2 3 4 |
break=on flles=30 device=C:\sys\rk.com device=C:\sys\vdisk.sys 20 device=C:\sys\ansi.sys device=C:\sys\mouse.sys |
В первой строке с помощью выражения BREAK=ON устанавливается режим, при котором пользователь будет иметь возможность прервать любую работающую программу при определенных условиях. Для этого дается команда прерывания, вызываемая одновременным нажатием управляющих клавиш Ctrl и Break. Работающая программа будет прервана, если эти клавиши оказываются нажатыми в момент выполнения операций ввода/вывода (включая печать на принтере, обмен с дисками и др.).
Во второй строке командой FILES=30 устанавливается, что количество одновременно открытых файлов может достигать 30.
Четыре следующие строки имеют одинаковый вид и содержат команды подключения к DOS дополнительных внешних устройств. В правой части каждого выражения, после знака равенства, задается имя файла, являющегося драйвером нового устройства:
RK.COM – драйвер, обеспечивающий прием с клавиатуры и выдачу на дисплей букв русского алфавита;
VDISK.SYS – драйвер виртуального диска, создаваемого в оперативной памяти;
ANSI.SYS – драйвер расширенного управления клавиатурой и дисплеем; MOUSE.SYS – драйвер манипулятора “мышь”.
Кроме указанных в примере команд, в файле конфигурирования можно установить нестандартное количество буферов для обмена информацией с дисковыми накопителями. Задание числа буферов делается с помощью выражения вида;
BUFFERS= (количество_буферов)
Еще одна возможность позволяет указывать имя файла, который будет играть роль нестандартного командного процессора (вместо стандартного файла COMMAND, СОМ). Такое указание осуществляется с помощью выражения вида:
SНЕLL=(имя_файла_с_новым_командным_процессором)
Таким образом, с помощью файла конфигурирования CONFIG.SYS пользователь может задать собственные, нестандартные возможности, которые действуют в течение текущего сеанса работы.
Командные файлы
Командные файлы принадлежат к категории исполняемых файлов. Такие файлы снабжаются типом .ВАТ (от английского слова batch – пачка). Запуск командного файла осуществляется точно так же, как запуск файла типа СОМ или ЕХЕ: указывается имя файла без расширения и, если требуется, параметры.
Роль командных файлов особая. Они могут содержать целую группу команд DOS или обращений к прикладным программам, которые выполняются последовательно или в более сложном порядке. Командный файл, в отличие от исполняемых файлов остальных двух типов, содержит не машинный код программы, а текст, который интерпретируется командным процессором DOS. Таким образом, по форме это обычный текстовый файл. Его строки могут представлять собой: встроенные команды DOS, обращения к исполняемым программам, вызовы других командных файлов, специальные команды для управления выводом на экран, специальные команды для организации ветвлений и циклов, метки.
Все эти конструкции (за исключением меток) могут ие только фигурировать в командных файлах, но и просто вводиться пользователем с клавиатуры. Однако в практической работе лишь команды первых трех типов вводятся пользователем, а остальные конструкции, включая метки, служат главным образом для создания нетривиальных командных файлов.
Рассмотрим несколько простых примеров применения командных файлов.
Пример 1. Допустим, наша регулярная работа осуществляется в каталоге WORK, но время от времени мы хотим переходить в каталог GRAPH, запускать там графический пакет VICONT, а по окончании работы с этой программой возвращаться в каталог WORK. Последовательность команд при этом должна быть следующей:
1 2 3 |
cd \GRAPH VICONT cd \WORK |
Эту последовательность можно разместить с помощью текстового редактора в командном файле. Каждая команда должна следовать на отдельной строке. Дадим этому файлу имя V.ВАТ. Достаточно теперь задать в качестве одной команды имя этого файла – V, и содержащиеся в нем несколько команд начнут интерпретироваться одна за другой, избавляя нас от необходимости вводить их текст с клавиатуры. Первая команда сменит каталог, а вторая погрузит нас в операционную среду системы VICONT. Когда после выполнения необходимых действий мы, наконец, закончим работу с VICONT, управление вернется в командный файл. Выполнение третьей команды вернет нас в каталог WORK. Заметим, что при выполнении каждой команды в данном примере на экране печатается приглашевие, затем текст самой команды (эхо) и, наконец, результат ее работы.
Пример 2. Допустим, мы хотим предельно сократить число манипуляций для создания необходимой рабочей обстановки при запуске системы. Мы можем заставить DOS автоматически провести всю необходимую подготовку операционной среды с помощью командного файла следующего вида;
1 2 3 4 5 |
echo off mode co80 path C:\;C:\EXE;C:\TURBO cd \WORK turbo |
Присвоив этому файлу какое-либо имя, например, START. ВАТ, мы избавим себя от систематического набора указанных команд: достаточно набирать лишь слово START. Первая команда этого файла ECHO OFF отключает “эхо”, т. е. блокирует выдачу на экран приглашений DOS и текстов последующих команд. Три следующие команды осуществляют настройку необходимых параметров (установка режима дисплея, задание альтернативных маршрутов и рабочего каталога), а последняя команда производит запуск системы TURBO Pascal.
Пример 3. Для подготовки принтера к печати русского текста мы можем воспользоваться специальной программой загрузки шрифта, обращение к которой имеет вид: LFONT 0. Перед запуском этой программы нужно проделать подготовительные действия – включить принтер, вставить бумагу. Можно создать небольшой командный файл, который будет выдавать на экран соответствующее уведомление и затем запускать программу LFONT с указанным параметром. Вид такого файла:
1 2 3 4 5 |
echo off echo Включите принтер, вставьте бумагу echo Будет загружен русский шрифт pause lfont 0 |
Дадим этому файлу имя LF.BAT. Для загрузки русского шрифта достаточно набрать команду LF. Исполнение этого командного файла начинается, как и в предыдущем примере, с команды ECHO OFF. Две следующие команды ECHO выводят на экран сообщения, заданные в файле в качестве текстовых строк – аргументов команд: “Включите принтер, вставьте бумагу” н “Будет загружен русский шрифт”. Четвертая команда, PAUSE (пауза), приостанавливает дальнейшую обработку файла LF в ожидании, пока пользователь не нажмет какую-либо клавишу. Пауза нужна для того, чтобы можно было не спеша включить принтер и заправить бумагу. Наконец, последняя команда запускает программу LFONT.
В последнем примере были использованы команды ECHO и PAUSE, управляющие выдачей информации на экран. К этой же категории можно отнести команду REM, которая служит для внесения в текст командного файла комментария. Строка, следующая sa символом REM, никак не интерпретируется командным процессором – она используется лишь для пояснений пользователю. С помощью команды REM удобно блокировать исполнение некоторых команд, не удаляя их из текста командного файла.
Использование команд ECHO, PAUSE и REM полезно лишь в командных файлах; вводить их с клавиатуры для непосредственного исполнения не имеет особого смысла. Есть и другие команды, предназначенные главным образом для использования в командных файлах. К ним относятся:
GOTO – безусловный переход (на метку);
IF – проверка условия и ветвление;
FOR – управление повторным выполнением команд;
SHIFT – сдвиг списка формальных параметров.
Отметим еще одно важное свойство командных файлов – возможность использования внутри них формальных параметров.
Для пояснения этой возможности обратимся еще раз к первому примеру. Допустим, нам хотелось бы применять одну и ту же последовательность команд, приведенную в примере 1, для запуска разных подсистем. Тогда можно видоизменить приведенный выше текст файла V. ВАТ, заменив имя каталога GRAPH и имя вызываемой программы VICONT формальными параметрами. Командный файл при этом приобретает вид:
1 2 3 4 |
cd \%1 %2 cd \WORK |
Символы %1 и %2 обозначают формальные параметры, вместо которых при обращении к файлу V.ВАТ будут подставлены в текстовом виде фактические параметры, указанные в командной строке. Обращение к V.ВАТ может иметь вид:
1 |
V graph vicont |
Строки graph и vicont займут место соответственно параметров %1 и %2, в результате чего получится точно такой же текст, как и в примере 1. Однако новый командный файл, в отличие от прежнего, можно использовать для запуска других подсистем, например:
1 |
V ss symph |
или
1 |
V ww word |
В первом случае из каталога SS будет вызвана программа symph, во втором случае из каталога WW вызывается система word.
Развитые командные файлы
Рассмотрим действие специальных команд, позволяющих управлять интерпретацией командных файлов. К ним относятся команды GOTO, IF, FOR, SHIFT, а также команда EXIT, играющая особую роль при рекурсивном вызове командных файлов.
Команда GOTO.
Позволяет передавать управление на метку и тем самым осуществлять повторное исполнение участков командного файла или, наоборот, обходить некоторые участки (что обычно имеет смысл в сочетании с командой ветвления IF).
Пример 1. Пусть командный файл PR.ВАТ имеет вид
1 2 3 4 5 6 7 |
echo off :m1 echo Вывод на принтер файла %1 echo Для остановки нажмите Ctrl-C copy %1 prn pause goto m1 |
В данном примере вторая строка содержит метку m1 (признаком метки является двоеточие в начале строки), а последняя строка – команду перехода на эту метку. Четыре команды внутри повторяемого участка командного файла служат для выдачи на экран поясняющих сообщений (команды ECHO) и копирования на принтер (т, е. печати) файла, имя которого подставляется вместо формального параметра %1. Команда PAUSE приостанавливает исполнение, чтобы пользователь имел возможность осмотреться и либо прервать работу, либо продолжить её дальше. Допустим, пользователь дает е терминала команду:
1 |
pr spectr.doc |
Тогда начинается циклическое исполнение файла PR. ВАТ с фактическим параметром SPECTR.DOC. На принтер начнут выдаваться одна за другой копии этого текстового файла, прерываемые паузами после каждой очередной копии. Пользователь может прервать исполнение этого командного файла, нажав одновременно клавиши Ctrl и С.
Команда IF.
Позволяет проверять условие и выполнять команду в зависимости от результата его проверки. Что можно задавать в качестве условия? Для этого имеется три возможности:
1. Проверка кода завершения программы, сработавшей перед оператором IF. При этом в начале оператора IF используется конструкция следующего вида:
1 |
IF ERRORLEVEL "N" |
Любая программа может с помощью специального прерывания DOS выработать в момент своего окончания так называемый код завершения. Этот код сравнивается с числом N. Условие считается выполненным (истинным), если выработанный код завершения равен или больше указанного числа N.
2. Проверка наличия файла в каталоге. В этом случае начало оператора IF имеет вид;
1 |
IF EXIST (имя_файла) |
В данном случав команда IF проверяет, действительно ли существует файл с заданным именем в указанном или в текущем каталоге. При обнаружении файла условие считается выполненным.
3. Сравнение двух строк, которые, в частности, могут задаваться через формальные параметры. Соответствующая конструкция может иметь вид;
1 |
IF %(N)=(текстовая_строка) |
Здесь значение формального параметра % (N) сопоставля,ется с конкретной строкой. При абсолютном совпадении двух строк условие считается выполненным.
Команда FOR.
Обеспечивает циклическое выполнение комацд DOS. При этом можно задать формальный параметр и список фактических параметров (обычно – имен файлов), которые последовательно подставляются вместо формального параметра в текст исполняемой команды.
Пример 2. Пусть имеется необходимость систематически копировать файлы PROG.PAS, PROG.OBJ и PROG.EXE из рабочего каталога на диск D: . С этой целью можно в соответствующем командном файле дать команду:
1 |
for %%А in (PAS OBJ ЕХЕ) do copy PROG.%%A D: |
Здесь формальный параметр %%А последовательно сопоставляется со списком фактических параметров в круглых скобках и используется командой COPY, которая в данном случае выполняется 3 раза подряд.
Подставив в качестве второго параметра команды COPY вместо имени D: еще один формальный параметр %1, можно будет менять назначение копирования, задавая его с терминала.
Команда SHIFT.
Вызывает сдвиг списка формальных параметров относительно списка фактических параметров. Так, если в командном файле фигурируют формальные параметры %1 и %2, а в обращении к командному файлу – фактические параметры А, В, С, D, то сначала соответствие формальных и фактических параметров выглядит следующим образом:
1 |
%1=А %2=В |
Однократное применения команды SHIFT дает следующее соответствие:
1 |
%1=В %2=С |
Двукратное применение вызывает дальнейший сдвиг:
1 |
%1=С %2=D |
Пример 3. Рассмотрим задачу, обратную задаче примера 2, а именно, – нужно копировать на диск D: файлы, имена которых пользователь будет вводить с терминала. Эту задачу позволит решить командный файл следующего вида:
1 2 3 4 5 |
echo оff :1оор copy %1 D: shift goto loop |
Если присвоить этому файлу имя D.BAT и вызвать его с произвольным числом аргументов:
1 |
d f.1 f.2 f.3 f.4 f.5 |
то будет происходить последовательное присваивание формальному параметру %1 значений f.1, f.2, f.3, f.4, f.5 и циклическое исполнение команд COPY и SHIFT. После исчерпания фактических параметров команда COPY выдаст сообщение об ошибке, поскольку ее первый аргумент будет отсутствовать. В этот момент пользователь сможет прервать работу командного файла, нажав клавиши Ctrl и C.
Команда SHIFT используется также в тех случаях, когда число параметров командного файла превышает 9, так как в командном файле можно адресоваться к формальным параметрам только от %0 до %9.
Файл автозапуска AUTOEXEC.BAT
С точки зрения содержащейся в файле AUTOEXEC.BAT информации он является обычным командным файлом. Однако он играет особую роль, потому что при начальном запуске и инициализации системы, вслед за обработкой CONFIG.SYS, операционная система пытается найти в корневом каталоге системного диска файл AUTOEXEC.BAT н начинает его обработку автоматически, без какого-либо побуждения со стороны пользователя. В файл AUTOEXEC.BAT удобно занести различные команды, которые осуществят всю необходимую настройку системы.
Пример.
Рассмотрим следующий файл AUTOEXEC.BAT:
1 2 3 4 5 6 7 |
echo off path C;\;C:\EXE prompt $p$g set ABC=C:\ABC rkvga.com ver fkeys.bat |
Начиная со второй строки этого файла, стоят команды, обеспечивающие создание определенной операционной обстановки. Рассмотрим их по порядку.
1. Команда PATH устанавливает альтернативные маршруты для поиска исполняемых файлов. В примере один из маршрутов указывает на системный подкаталог с именем ЕХЕ. Кроме того, как возможное место размещения используемых программ указан корневой каталог диска С: .
В ряде случаев прикладные программы используют каталоги с именем BIN. В этом случае именно его имя полезно указать в команде PATH.
Для пользователей, часто обращающихся к какой-либо одной системе программирования или прикладной системе (например, Turbo Pascal), может оказаться полезным включение в число альтернативных маршрутов имени соответствующего подкаталога.
2. Команда PROMPT задает формат приглашения DOS. Задание формата приглашения осуществляется параметром команды – строкой, состоящей из обычных текстовых и специальных управляющих символов. Управляющие символы снабжаются префиксом – знаком $, отличающим их от обычных символов.
В рассматриваемом примере строка $p$g в качестве параметра команды PROMPT обеспечивает выдачу приглашения, которое используется наиболее часто. Оно содержит имя текущего каталога и имеет, например, такой вид:
1 |
C:\WORK>; |
Если бы строка имела вид $t $d $b $p$g, то в приглашение были бы включены довольно длинные сообщения о времени и дате:
1 |
13:55:34.05 Mon 11 - 26 - 98 | C:\WORK) |
Командой PROMPT можно выдавать и другие информационные параметры, например, имя пользователя, название организации и др.
3. Команда SET позволяет вводить в операционную обстановку системы различные имена с параметрами, которые затем могут использоваться прикладными программами. Типичное использование таких параметров – задание имен каталогов, где должны находиться все рабочие файлы для данной прикладной системы (например, базы данных или текстового редактора).
В рассматриваемом примере команда SET вводит имя АВС с параметром С:\АВС, которое является указанием текстовому процессору, откуда следует брать вспомогательные файлы (шрифты, драйверы и др.).
Рассмотренные выше команды PATH и PROMPT также кодифицируют обстановку, но в отношении фиксированных имен (а именно, устанавливают параметры для имен PATH и PROMPT). Команда SET позволяет делать то же самое для произвольных имен, и ее, таким образом, можно рассматривать как обобщение вышерассмотренных команд.
Команда SET может использоваться, например, для указания каталога, ориентированного на обслуживание конкретной прикладной программы.
4. Команда RKVGA.COM запускает русификатор шрифтов.
5. Команда VER в шестой строке файла AUTOEXEC.BAT является встроенной в DOS командой. Ее задача очень проста – выдать на экран сообщение о номере версии операционной системы.
6. Последняя команда в файле автозапуска – FKEYS.BAT – осуществляет вызов другого командного файла FKEYS.BAT, в котором происходит переопределение некоторых функциональных клавиш для предоставления пользователю возможности быстрого набора некоторых часто используемых команд.
Таким образом, в рассмотренном файле автозапуска указаны команды, с помощью которых создается определенная операционная обстановка, способствующая удобной дальнейшей работе пользователя. Часто в файл автозапуска вставляются также команды управления экраном, с тем чтобы перед началом работы сделать цветные заставки, выдать сообщения и др. Применяется также команда MODE для установки параметров экрана, принтера и коммуникационного канала, а также команда ASSIGN для переназначения логических имен накопителей.
Управление внешними устройствами
Некоторые команды DOS позволяют управлять характером работы компьютера и периферийных устройств. К числу таких команд относится команда Mode. Команда Mode – многоцелевая команда, но все ее цели имеют с небольшими вариациями один смысл: изменение режима работы аппаратуры. Обычно эту команду применяют в файле автозапуска Autoexec.bat, чтобы реконфигурация работы периферийных устройств выполнялась автоматически каждый раз при загрузке операционной системы.
Команда Mode используется в следующих целях:
– установка режимов работы принтеров;
– установка режимов экрана монитора;
– установка режимов работы последовательного порта ПК;
– подготовка к работе последовательного принтера;
– установка или замена кодовой страницы (при работе на альтернативных языках);
– получение информации о текущих настройках режимов аппаратуры;
– установка частоты повторения ввода нажатой клавиши.
Для получения подробных сведений о методике применения команды Mode в конкретных случаях следует обратиться к справочной документации по DOS.
Управлять экраном монитора можно также с помощью драйвера ANSI.SYS – специальной прграммы, подключаемой к DOS через файл конфигурации CONFIG.SYS. Этот драйвер объемом менее 2 К обеспечивает дополнительные функции управления дисплеем: задание цвета символов и фона, позиционирование курсора, переопределение символов, вводимых с клавиатуры и т.д. Реализация этих функций осуществляется с помощью следующего приема – в драйвер посылаются особые управляющие последовательности символов (так называемые Esc-последовательности), которые и заставляют его выполнять те или иные операции.
взято тут