Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы / Куликова Н.В., Петровская Е.Н. (ч.1,2)

.pdf
Скачиваний:
52
Добавлен:
11.06.2015
Размер:
2.62 Mб
Скачать

Роль комментария вполне может играть метка. Поскольку сама метка никак не интерпретируется, она может применяться как комментарий. Строка-метка начинается с двоеточия

: [comments]

Вложенные командные файлы

Командный язык DOS позволяет вызывать один командный файл из другого с последующим возвратом в точку вызова. Вызываемый таким образом командный файл называется вложенным. Семейство вложенных командных файлов предпочтительнее, чем единый «монолитный» командный файл, поскольку обеспечивается его структуризация и модульность.

Для вызова другого командного файла из данного необходимо использовать команду

CALL file [arglist] ,

file – спецификация вызываемого командного файла (расширение bat можно опустить);

arglist – список аргументов, передаваемых этому командному файлу.

При команде CALL осуществляется запуск командного файла file с передачей ему аргументов из списка arglist. По завершении выполнения командного файла управление будет возвращено в точку его вызова, в результате чего следующей выполняемой командой окажется команда, непосредственно расположенная за командой CALL. Таким образом, используя команду CALL, можно создавать рекурсивные командные файлы, но нужно обеспечить при этом корректное завершение рекурсивных вызовов.

Безусловная передача управления

Безусловная передача управления обеспечивает обход некоторой последовательности строк командного файла. Она может иметь самостоятельное значение или использоваться вместе с командой IF при организации в командных файлах разветвлений и циклов.

Нарушить обычную линейную последовательность исполнения строк командного файла призвана команда, задаваемая в следующем формате:

GOTO label ,

31

label – метка, состоящая из любой последовательности символов, за исключением разделителей (пробелы, знаки препинания и равенства). Выполнение команды GOTO сводится к тому, что интерпретация командного файла будет продолжена со строки, текстуально следующей за строкой с меткой label

:label

За самой меткой в этой строке может находиться любая информация, рассматриваемая как комментарий.

Организация разветвлений

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

Разветвление в командных файлах реализуется чаще всего при помощи команды IF с возможным привлечением команды GOTO.

Синтаксис команды IF:

IF[NOT] condition process ,

condition – условие, которое может выполняться или не выполняться;

process – любая команда DOS.

Команда IF позволяет выполнить или пропустить содержащуюся в ней команду process в зависимости от результатов проверки условия condition. При отсутствии слова NOT специфицированная команда process выполняется, если условие condition принимает значение истина, т.е. удовлетворяется. В случае задания NOT, наоборот, команда process выполняется, если условие condition принимает значение ложь (не удовлетворяется). В других случаях команда process не выполняется, а просто пропускается, в результате чего будет выполняться текстуально следующая строка.

Организация циклов

Циклом называется многократное выполнение одной и той же последовательности команд. Цикл задается с помощью команды FOR, которая имеет формат:

FOR %%symbol IN (list) DO process ,

32

symbol – параметр цикла (обычно одна буква);

list – список из цепочек символов, разделенных пробелами или запятыми;

process – команда, в которую может входить параметр цикла и образующая тело цикла.

Действие команды FOR состоит в том, что тело цикла (process) многократно выполняется, каждый раз с различными значениями параметра цикла %%symbol, взятыми из списка list. Технически это реализуется так: берется элемент из списка list и этим элементом замещается параметр %%symbol в команде process. Затем команда выполняется, и описанный процесс выполняется до тех пор, пока список не будет исчерпан.

Команды FOR не могут быть вложенными.

2. Возможности и порядок использования файлов

CONFIG.SYS и AUTOEXEC.BAT

Формирование файлов настройки системы

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

файл CONFIG.SYS – это текстовый файл, каждая строка которого содержит команды, которые касаются конфигурации аппаратуры компьютера (память, клавиатура, мышь, принтер и т.д.), или комментарии. Когда система MS-DOS загружается, сначала выполняются инструкции, находящиеся в файле CONFIG.SYS;

файл AUTOEXEC.BAT – это файл пакетной обработки, который система MS-DOS выполняет сразу после обработки файла

CONFIG.SYS. Файл AUTOEXEC.BAT содержит команды, кото-

рые требуется выполнять при запуске системы;

Система MS-DOS выполняет эти файлы при каждой загрузке компьютера, но при желании есть возможность указать системе, что команды в этих файлах можно пропустить.

Замечание

ВОС WindowsNT и более поздних версий, файлы AUTOEXEC.BAT и CONFIG.SYS не используются для инициализации среды MS DOS. Файлы AUTOEXEC.NT и CONFIG.NT находятся

вкаталоге %System Root%\System32 (в компьютерном классе:

33

С:\WINNT\System32). Они задают конфигурацию, которая используется MS-DOS программами. Эти два файла применяются для целей, аналогичных AUTOEXEC.BAT и CONFIG.SYS в MSDOS, но они имеют важные отличия:

AUTOEXEC.BAT и CONFIG.SYS должны находиться в кор-

невой директории вашего загрузочного диска. AUTOEXEC.NT и CONFIG.NT находятся в папке %System Root%\System32.

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

MS-DOS. Файлы AUTOEXEC.NT и CONFIG.NT являются фай-

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

При установке системы программа установки формирует базовую конфигурацию системы, которая работоспособна для большинства компьютеров. Однако может возникнуть необходимость изменить эту конфигурацию. Для этого нужно отредак-

тировать файлы CONFIG.SYS и AUTOEXEC.BAT.

Редактирование файлов CONFIG.SYS и AUTOEXEC.BAT

ВНИМАНИЕ! Не следует редактировать файлы config.sys и autoexec.bat, не имея представления о результатах своих действий! Перед редактированием обязательно сохраните копии этих файлов.

Для редактирования файлов CONFIG.SYS и AUTOEXEC.BAT следует использовать текстовый редактор, который может сохранять файлы в виде неформатированного текста (например, MS-DOS Editor).

Для внесения изменений в файл CONFIG.SYS или AUTOEXEC.BAT следует:

1. Сформировать загрузочный диск с резервными копиями изменяемых файлов, вставив в дисковод А: новую дискету и набрав в приглашении системы

format a: /s

2. Скопировать свои файлы CONFIG.SYS и AUTOEXEC.BAT

на только что созданный загрузочный диск, набрав в приглашении системы

34

copy c:\CONFIG.SYS a: copy c:\AUTOEXEC.BAT a:

3. Открыть файл CONFIG.SYS или AUTOEXEC.BAT, исполь-

зуя текстовый редактор. Чтобы использовать редактор MS-DOS, в приглашении системы набрать edit и через пробел имя файла.

4.Изменить команды, находящиеся в файле CONFIG.SYS или AUTOEXEC.BAT, нужным образом. Каждая команда должна начинаться с новой строки.

5.Сохранить изменения и выйти из редактора.

6.Убрать из дисководов все дискеты и перезагрузить компьютер (чтобы все изменения возымели действие), нажав кла-

виши CTRL+ALT+DEL.

Замечание

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

вод А и нажмите CTRL+ALT+DEL.

В ОС WindwsNT и более поздних версий, файлы AUTOEXEC.BAT и CONFIG.SYS не используются для инициализации среды MS DOS. Используются файлы AUTOEXEC.NT и CONFIG.NT. Файлы находятся в каталоге C:\WINDOWS\system32.

Команды файла CONFIG.SYS

Команды, находящиеся в файле CONFIG.SYS, запускают специальные команды или определяют, как должна работать аппаратура. Команды имеют типовую структуру: имя команды, знак равенства, аргументы или переключатели. Типичный файл CONFIG.SYS содержит некоторые из этих команд (табл. 2).

Файл CONFIG.SYS может также содержать команды include, menucolor, menudefault, menuitem и submenu и некоторые другие.

35

 

Таблица 2

 

 

Команда

Назначение

Break

Задает, должна ли система периодически проверять

 

факт нажатия комбинации клавиш CTRL+C или

 

CTRL+BREAK

Buffers

Задает, сколько памяти система резервирует для буфе-

 

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

country

Устанавливает языковые и национальные настройки

device

Загружает устанавливаемый драйвер устройства – сис-

 

темный модуль, который управляет одним из компо-

 

нентов аппаратуры, например, мышью

devicehigh

Загружает устанавливаемый драйвер устройства в

 

верхнюю память

DOS

Задает, будет ли MS-DOS использовать область верх-

 

ней памяти (НМА) и обеспечивать доступ к блокам

 

старшей памяти

drivparm

Устанавливает характеристики дисковода

Files

Устанавливает максимальное количество одновремен-

 

но открытых файлов

install

Загружает резидентную программу (TSR)

lastdrive

Устанавливает количество букв логического диска

numlock

Задает состояние клавиш NUM LOCK после загрузки

rem или ;

Указывает, что следующий далее текст является не

 

командой, а комментарием

Set

Устанавливает значение переменной среды, например,

 

PROMT или TEMP

Shell

Конфигурирует COMMAND.COM или задает интер-

 

претатор команд, если в качестве такового должен ис-

 

пользоваться не COMMAND.COM

stacks

Задает размер памяти, резервируемый для обработки

 

прерываний аппаратуры

swinches

Задает некоторые специальные опции MS-DOS

Команда DEVICE

DEVICE=files [ arglist ] [swtlist ] ,

files – спецификация файла, содержащего драйвер (она должна быть обязательно полной и включать расширение имени файла); arglist – список аргументов;

swtlist – список переключателей.

36

Команда DEVICE обеспечивает загрузку драйвера в стандартную память (с адресами меньше 640 Кб). Загрузка драйвера в верхнюю память, находящуюся в диапазоне адресов от 640 К до 1 М, производится аналогичной ей командой DEVICEHIGH. Каждый подключенный к системе драйвер потенциально уменьшает размер свободной оперативной памяти, доступной для выполнения программ.

Команда SHELL

Несмотря на то, что DOS во время загрузки способна отыскать, разместить в памяти и активизировать интерпретатор команд (содержащийся в файле COMMAND.COM) самостоятельно, в файл CONFIG.SYS обычно помещают команду SHELL, в которой указывают файл COMMAND.COM явно. Для этого имеются по крайней мере две причины:

1)появляется возможность хранить файл COMMAND.COM в любом каталоге любого диска (иначе он должен быть только в корневом каталоге системного диска);

2)пользователь может изменить размер окружения DOS (по умолчанию для хранения окружения выделяется 256 байтов, чего в большинстве случаев недостаточно).

Команда SHELL задается следующим образом:

SHELL= dir\COMMAND.COM /Е:n/P ,

dir – полная спецификация каталога, в котором находится файл

COMMAND.COM;

/E:n – переключатель, числом n в котором задается требуемый размер окружения в байтах (допустимы значения от 160 до

32768, кратные 16);

– переключатель, предписывающий разместить интерпретатор команд в памяти резидентно.

Команда COUNTRY

По умолчанию DOS отображает дату и время в соответствии с соглашениями, принятыми в США. Чтобы перейти на европейский формат, нужно поместить в файл CONFIG.SYS команду COUNTRY, если это не было обеспечено во время установки DOS.

Команда BUFFERS

При обмене данными между оперативной и внешней памятью DOS использует специальные буферы, размером 532 байта (чтобы в каждом буфере помещался 512-байтный сектор и необ-

37

ходимая служебная информация), называемые буферами вводавывода. Применение буферов ввода-вывода позволяет выделять логические записи, с которыми работают программы, из физических (512-байтных) записей, с которыми работает система (при чтении), а также объединять логические записи в физические (при записи данных во внешнюю память). Одновременно буферы ввода-вывода обеспечивают минимальные возможности кэширования внешней памяти, способствуя в конечном счете повышению производительности компьютера. Это особенно актуально, когда небольшая емкость оперативной памяти (до 1 М) не позволяет организовать эффективное кэширование внешней памяти соответствующими программными средствами.

Формат команды

BUFFERS = n [, т ] ,

n – количество первичных, т.е. основных, буферов (от 1 до 99); m – количество вторичных буферов, предназначенных только для упреждающего чтения, котороедолжно быть в интервале от0 до8.

По умолчанию в качестве m всегда принимается 0. Если команда BUFFERS отсутствует, то количество формируемых первичных буферов зависит от объема оперативной памяти и емкости жесткого диска. Чтобы обеспечить нормальную производительность, достаточно иметь 10-20 первичных буферов и несколько вторичных.

Команда FILES

Прежде чем приступить к чтению из файла или записи в него, необходимо выполнить ряд предварительных операций, называемых открытием файла. Открытие файла инициируется из программы, а реализуется системой. DOS должна хранить информацию об открытых файлах, следовательно, ей нужна для этих целей некоторая область памяти, которая резервируется в ходе загрузки системы. Максимальное количество файлов, которые могут быть одновременно открытыми, задается командой FILES

FILES = n ,

число n должно принадлежать диапазону 8–255, по умолчанию (при отсутствии команды) принимается 8. Обычно этого недостаточно – рекомендуется значение 20. Может потребоваться и большее значение, если Ваши программы работают сразу с множеством файлов.

38

Команда STACKS

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

STACKS =n,m ,

n – количество стеков (от 8 до 64, причем допустимо нулевое значение);

m – размер каждого стека в байтах (от 32 до 512, нулевое значение также допустимо).

Исключается формирование системных стеков, а, следовательно, экономится оперативная память компьютера командой

STACKS =0,0.

Использование этой команды нужно взять за правило во всех случаях, если ее наличие не ведет к неустойчивой работе компьютера, сопровождаемой появлением сообщений

Stack overflow

Переполнение стека

Exception error 12

Исключительная ошибка 12

Команда BREAK

Если необходимо, чтобы имелось максимум возможностей по прерыванию выполнения программ путем нажатия комбинации клавиш CTRL+BREAK (CTRL+C), то надо поместить в файл

CONFIG.SYS команду

BREAK = ON

В результате этого указания DOS будет анализировать нажатие комбинаций клавиш CTRL+BREAK (CTRL+C) чаще, чем обычно.

Команда NUMLOCK

Можно предотвратить переключение малой цифровой клавиатуры в режим ввода чисел, которое происходит при каждой загрузке DOS, включив в файл CONFIG.SYS команду

39

NUMLOCK =OFF

Автоматическое включение режима ввода чисел выполняется командой

NUMLOCK =ON

Настройка драйверов аппаратуры

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

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

 

Таблица 3

 

 

Драйвер

Назначение

1

2

ANSI.SYS

Поддерживает эмуляцию терминала ANSI Ameri-

DISPLAY.SYS

can National Institute)

Поддерживает переключение кодовых страниц

 

для монитора.

DBLSPACE.SYS

Перемещает модуль DBLSPACE.BIN на предна-

DRIVER.SYS

значенное ему место в памяти.

Создает логический диск, который можно ис-

 

пользовать для обращения к физическому диско-

EGA.SYS

воду для гибких дисков.

Сохраняет и восстанавливает содержимое экрана

 

при использовании средства MS-DOS Shell Task

 

Swapper илисредыWindows смониторомтипаEGA.

40