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

Dos7book

.pdf
Скачиваний:
75
Добавлен:
09.02.2015
Размер:
5.1 Mб
Скачать

Глава 5: Избранные драйверы для MS-DOS7

/UF

использовать ускоренный прямой доступ в память (UltraDMA).

 

Осуществимость UltraDMA установлена для многих, но не для

 

всех комплектов микросхем (чипсетов) материнских плат. В

 

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

 

ли указывать параметр /UF.

/UX

запретить ускоренный прямой доступ в память (UltraDMA), даже

 

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

 

обеспечить (это бывает нужно для диагностики и тестирования).

 

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

 

QCDROM.SYS не нуждается в XMS-памяти.

/PM

– (= Primary Master): не проводить поиск дисководов по портам, а

 

проверить наличие ведущего оптического дисковода у первого

 

IDE-контроллера.

/PS

– (= Primary Slave): не проводить поиск дисководов по портам, а

 

проверить наличие ведомого оптического дисковода у первого

 

IDE-контроллера.

/SM

– (= Secondary Master): не проводить поиск дисководов по портам,

 

а проверить наличие ведущего оптического дисковода у второго

 

IDE-контроллера.

/SS

– (= Secondary Slave): не проводить поиск дисководов по портам, а

 

проверить наличие ведомого оптического дисковода у второго

 

IDE-контроллера,

В одной командной строке могут быть сразу несколько параметров, исключающих проведение поиска (но не более трех). Нумерация оптических дисководов производится начиная с нуля в том порядке, в каком соответствующие параметры перечислены в командной строке. Если ни в одной из указанных позиций оптические дисководы не будут обнаружены, то драйвер QCDROM.SYS не загрузится, причем наличие оптических дисководов в других позициях будет проигнорировано.

5.09-04 Драйвер DVS.SYS для дисководов CD/DVD-ROM.

Драйвер оптических дисководов DVS.SYS версии 1.1 разработан в 1999 году корпорацией Digital Video Systems Corp. Он обеспечивает доступ к дискам CD и к дискам DVD, не нуждаясь в предварительной загрузке драйвера ATAPIMGR.SYS. На сайте фирмы DVS драйвера DVS.SYS нет, но его можно скачать из архива http://web.archive.org/web/20030212210152/www.dr-tech.com/drivers/cdroms.html в

составе самораспаковывающегося архивного файла DRDVDWD.EXE.

– 161 –

Глава 5: Избранные драйверы для MS-DOS7

Загружать драйвер DVS.SYS следует командами DEVICE (4.06) или

DEVICEHIGH (4.07) из строки файла CONFIG.SYS, например:

DEVICEHIGH=\DOS\DRV\Dvs.sys /D:MSCD001

здесь:

\DOS\DRV\

пример пути к драйверу DVS.SYS.

/D:MSCD001

параметр /D: объявляет произвольный идентификатор

длиной до 8 знаков для опознания драйвера программой

MSCDEX.EXE (5.08-03) или программой SHSUCDX.COM (5.08-04). В строке запуска этих программ должен быть указан такой же параметр /D: с точно тем же идентификатором.

Драйвер DVS.SYS выполняет поиск оптических дисководов по портам, причем делает это довольно медленно. Экспериментально установлено, что он способен обслужить по крайней мере два оптических дисковода, подключенных к любому из двух стандартных IDE-контроллеров с обычными спецификациями портов и линий вызова прерываний (1F0h с IRQ 14 и/или 170h с IRQ 15).

– 162 –

Глава 6

Избранные программы для MS-DOS7

 

6.01

Attrib.exe

164

6.14

Find.exe

207

6.02

Chkdsk.exe

165

6.15

Format.com

210

6.03

Choice.com

166

6.16

Label.exe

212

6.04

Command.com

168

6.17

Mem.exe

213

6.05

Debug.exe

171

6.18

Mode.com

214

6.06

Diskcopy.com

192

6.19

More.com

217

6.07

Doskey.com

193

6.20

Move.exe

218

6.08

Deltree.exe

196

6.21

Scandisk.exe

219

6.09

Edit.com

 

197

6.22

Sort.exe

223

6.10

Expand.exe

200

6.23

Subst.exe

224

6.11

Extract.exe

201

6.24

Sys.com

225

6.12

Fc.exe

 

203

6.25

Vc.com

226

6.13

Fdisk.exe

204

6.26

Xcopy.exe

243

Расширение и совершенствование состава операций в MS-DOS7 обеспечиваются привлечением исполняемых программных файлов (утилит). К операционным системам WINDOWS-95/98 фирма Microsoft прилагает комплект программ для DOS. Если источник программы не указан, то, значит, она входит в

прилагаемый комплект и при стандартной установке находится в каталоге \WINDOWS\COMMAND. Именно эти программы преимущественно представлены в данной главе. Помимо того, в MS-DOS7 успешно работают многие программы из предыдущих версий DOS, а также весьма многочисленные программы, созданные другими фирмами и частными лицами.

Большинство программ, разработанных для MS-DOS, содержит встроенную краткую справку. Чтобы вывести ее на экран, обычно достаточно запустить программу на исполнение со знаком вопроса в качестве единственного параметра: /?. Реже встречаются программы, выводящие справку при запуске с параметром – h или вообще без параметров.

Некоторые программы запрашивают номер версии MS-DOS и выдают сообщение об ошибке, если возвращаемый номер отличен от ожидаемого. Это не обязательно обусловлено несовместимостью: почти все такие программы успешно работают в MS-DOS7, когда возвращаемый номер версии подменен данными из таблицы драйвера SETVER.EXE (5.01-02).

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

– 163 –

Глава 6: Избранные программы для MS-DOS7

возможность адресовать действующую программу с тем же именем через переменную окружения PATH (2.02-02), потому что MS-DOS первой находит и пытается запустить на исполнение неподходящую программу из текущего каталога. В комплекте поставки MS-DOS7 подобным конфликтам потенциально подвержены программы ATTRIB.EXE, CHKDSK.EXE, COMMAND.COM, DEBUG.EXE, DISKCOPY.COM, DOSKEY.COM, FC.EXE, FIND.EXE, FORMAT.COM, LABEL.EXE, MEM.EXE, MODE.COM, SORT.EXE, SUBST.EXE, XCOPY.EXE. Для

пользования этими программами желательно заранее заготавливать пункты меню файл-менеджера или batch-файлы, содержащие строки вызова с полной спецификацией пути (примеры в 9.03).

Приводимые в данной главе примеры применения упомянутых и других программ, как правило, не содержат спецификации пути к вызываемой программе. Предполагается, что драйвер SETVER.EXE, переменная окружения PATH и

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

6.01ATTRIB.EXE – изменение атрибутов файлов

Вкаталогах каждому содержащемуся в них файлу соответствует запись (A.09-1), в которой байт атрибутов со смещением 0Bh определяет статус файла и права доступа к нему (A.09-2). Изменить атрибуты файлов можно с помощью программы ATTRIB.EXE, например, так:

ATTRIB.EXE +R –A C:\DOS\COM\*.txt /S

здесь:

+R –A

установить атрибут R (только для чтения) и снять атрибут A

 

(подлежит архивированию). Всего может быть указано до

 

четырех атрибутов: A, H (скрытый файл), R и S (системный

 

файл). Для установки атрибута ему должен предшествовать знак

 

плюс, для снятия знак минус. Не указанные атрибуты не

 

изменяются.

C:\DOS\COM\*.txt

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

 

которых должны быть изменены: в данном случае это все

 

текстовые файлы в указанном каталоге. Вместо маски может

 

быть указано конкретное имя файла. Если путь не указан, то по

 

умолчанию принимается текущий каталог.

/S

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

 

подлежащих преобразованию файлов в подкаталогах указанного

 

каталога.

 

– 164 –

Глава 6: Избранные программы для MS-DOS7

Примечание 1: если в строке вызова атрибуты не указаны, то программа ATTRIB.EXE выводит на экран список файлов, соответствующих приведенной маске, с перечнем их атрибутов и других характеристик.

6.02CHKDSK.EXE – программа проверки дисков

Программа CHKDSK.EXE анализирует и исправляет FAT (File Allocation Tables = таблицы размещения файлов) на дискетах и жестких магнитных дисках с файловыми системами FAT-12, FAT-16 и FAT-32. Путем сопоставления данных в первой и второй таблицах FAT с данными из каталогов CHKDSK.EXE выявляет перекрестные ссылки и потерянные кластеры. Последние преобразуются в файлы с суффиксом *.CHK, помещаемые в корневой каталог того же диска. Закончив проверку, CHKDSK.EXE выводит на экран сводку полученных результатов.

Когда CHKDSK.EXE запускается на исполнение без параметров, он начинает проверять текущий диск с установками по умолчанию. Допускается в командной строке указывать следующие необязательные параметры:

CHKDSK.EXE C: /F /V

здесь:

C:пример спецификации диска, подлежащего проверке;

/F

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

/V

выводить на экран имена всех файлов с указанием путей.

Примечание 1: программа SCANDISK.EXE (6.21) выполняет все проверки, которые делает CHKDSK.EXE, и ряд проверок сверх того. Поэтому CHKDSK.EXE целесообразен в основном как информационная программа, показывающая сведения об использовании диска.

Примечание 2: с помощью программы CHKDSK.EXE нельзя проверять сетевые диски, оптические диски CD-ROM, а также виртуальные диски, создаваемые программами ASSIGN.COM, SUBST.EXE и JOIN.EXE.

Примечание 3: программа CHKDSK.EXE не выясняет, поврежден или нет каждый проверяемый файл и можно ли его прочитать.

Примечание 4: не следует запускать программу CHKDSK.EXE с параметром /F для проверки дисков, подозреваемых в том, что они заражены вирусом. Сначала надо запустить антивирусную программу.

Примечание 5: не следует проверять программой CHKDSK.EXE диски, имеющие от 4085 до 4087 кластеров, потому что на таких дисках CHKDSK.EXE может показывать несуществующие ошибки, попытки исправления которых приводят к потере данных.

– 165 –

Глава 6: Избранные программы для MS-DOS7

6.03CHOICE.COM – ввод выбора пользователя

Программа CHOICE.COM предназначена для создания интерактивных меню в ходе исполнения batch-файлов. Она принимает знак, задаваемый нажатием клавиши на клавиатуре или посланный посредством перенаправления, и устанавливает код ошибки (errorlevel, 3.15-03, 9.07-03) в соответствии с номером принятого знака в заранее заданной последовательности знаков, выражающей множество допустимых альтернатив.

Вот пример использования программы CHOICE.COM по ее прямому назначению:

CHOICE.COM /C:YNC /T:C,10 Yes, No or Continue

 

здесь:

 

 

 

/C:YNC – необязательный параметр /C: представляет

перечень

 

принимаемых знаков. Возвращаемый код ошибки соответствует

 

порядковому номеру принятого знака в этом перечне: Y – 1, N –

 

2, C – 3. Когда параметр /C: не указан, по умолчанию

 

принимается перечень из двух букв: YN ( Y – 1, N – 2 ).

/T:C,10

необязательный параметр /T: устанавливает интервал 10 секунд

 

ожидания ответа пользователя (допускается от 0 до 99 секунд) и

 

определяет одну из альтернатив (в данном примере C, код

 

ошибки 3), которую следует выбрать по умолчанию, если ответ

 

пользователя в течение указанного интервала времени не

 

поступит. Если интервал ожидания не указан, CHOICE.COM

 

будет ждать сколь угодно долго. При нулевом интервале

 

ожидания CHOICE.COM просто устанавливает желаемый код

 

ошибки сразу.

 

Yes, No or Continue

пример необязательной строки

подсказки,

 

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

 

пользователя. В роли подсказки годится любая группа слов,

 

которой не предшествует знак прямой косой черты.

 

Перед строкой подсказки CHOICE.COM позволяет указать еще два необязательных

параметра:

 

 

 

/S

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

/N

не выводить на экран после строки подсказки перечень

 

альтернативных знаков ответа и знак вопроса.

 

Возвращаемый программой CHOICE.COM код ошибки используется для того, чтобы изменять дальнейший ход исполнения команд batch-файла. Код ошибки сохраняется при исполнении встроенных команд командного интерпретатора, пока не будет вызвана на исполнение еще какая-либо программа. Значения кода ошибки

можно проверять в нескольких последующих строках посредством исполнения

– 166 –

Глава 6: Избранные программы для MS-DOS7

команд по условию "If errorlevel" (3.15-03) или в цикле FOR (3.13), позволяющем присвоить возвращаемый код ошибки в качестве значения переменной окружения, например, так:

FOR %%Z in (1 2 3) DO if errorlevel %%Z set Err=%%Z

Аналогичным образом цикл FOR с проверкой кода ошибки можно использовать для исполнения условного перехода (командой goto L%%Z), но только

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

Существенно иная область применения программы CHOICE.COM – это разбор слов по буквам. Предположим, что для анализа слов написан batch-файл CHECK.BAT, которому каждое анализируемое слово должно быть представлено раздельно буква за буквой. В этой задаче программа CHOICE.COM может помочь следующим образом:

ECHO ; | CHOICE /S /C:;Anyword; Call CHECK.BAT > Temp.bat Call Temp.bat

Здесь подлежащее разбору слово ( Anyword ) окружено знаками точки с запятой, которые необходимы для правильного выделения первой и последней букв. Кроме того, добавление знаков точки с запятой к перечню допустимых альтернатив позволяет перенаправить командой ECHO заведомо имеющийся знак и гарантирует тем самым безостановочное исполнение данной командной строки. Направляемая в канал STDOUT подсказка представлена группой слов "Call CHECK.BAT". К ней программа CHOICE.COM добавляет перечень альтернатив, разделенных запятыми, который заключен в квадратные скобки и заканчивается знаком вопроса. Все это сообщение на экран не попадает, оно перенаправлено во временный файл TEMP.BAT. В результате в файл TEMP.BAT оказывается записана строка:

Call CHECK.BAT [;,A,n,y,w,o,r,d,;]?

Вызов на исполнение файла TEMP.BAT приводит к исполнению данной командной строки, в ходе которого анализирующий batch-файл CHECK.BAT

получает буквы разбираемого слова в виде значений формальных параметров от %2 до %8, так что их можно анализировать отдельно одну за другой.

Примечание 1: если пользователь прервет интервал ожидания ответа нажатием клавишных комбинаций CTRL-BREAK или CTRL-C, то программа CHOICE.COM оставит код ошибки 0.

Примечание 2: когда пользователь нажимает какую-нибудь клавишу, не входящую в перечень альтернатив, программа CHOICE.COM посылает в канал STDOUT управляющий символ 07h, вызывающий звуковой сигнал.

– 167 –

Глава 6: Избранные программы для MS-DOS7

Примечание 3: когда программа CHOICE.COM обнаруживает в командной строке какую-либо ошибку, она возвращает код ошибки 255.

6.04COMMAND.COM – командный интерпретатор

Командный интерпретатор COMMAND.COM – это резидентная программа, представляющая приглашение командной строки, обеспечивающая исполнение команд из командной строки, а также автоматическое считывание и исполнение команд из строк batch-файлов. В файле COMMAND.COM содержится исполняемый код всех встроенных команд интерпретатора, описанных в главе 3.

Управление компьютером передается командному интерпретатору COMMAND.COM в процессе загрузки, когда загрузчик IO.SYS выполняет команду SHELL (4.26) в файле CONFIG.SYS. В результате этого первого исполнения

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

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

В отличие от обычных программ, командный интерпретатор COMMAND.COM не оставляет в своем PSP (= префиксе сегмента программы, A.07-1) ссылки на исходный (родительский) PSP, в результате чего родительское окружение сохраняется скрытно без легального пути доступа. Повторная загрузка командного интерпретатора COMMAND.COM позволяет изменить локальные переменные окружения и условия исполнения программ, например, обеспечить пошаговое исполнение batch-файла. Когда повторно загруженный резидентный модуль выполнит свою миссию, его можно закрыть командой EXIT (3.12), при этом дочернее окружение со всеми его переменными теряется, управление снова берет на

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

Вот пример загрузки командного интерпретатора, в частности, для пошагового исполнения одного batch-файла:

COMMAND.COM C:\dos\ CON /E:1008 /L:512 /U:255 /Y /C R:\Trial.bat

здесь:

C:\dos\ – пример пути к файлу COMMAND.COM; этот путь должен

оканчиваться знаком обратной косой черты и служит для переопределения значения переменной %COMSPEC%. Если имеется родительское окружение, то путь можно не указывать, и тогда переменная %COMSPEC% унаследует свое значение из

– 168 –

Глава 6: Избранные программы для MS-DOS7

 

 

родительского окружения. Но если путь указан, то он должен

 

 

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

 

 

интерпретатора.

 

 

 

 

CON

пример спецификации устройства, через которое

должен

 

 

производиться ввод и вывод данных. CON – это консоль, то есть

 

 

дисплей для вывода данных и клавиатура для ввода. Именно так

 

 

осуществляется ввод-вывод по умолчанию, и потому

 

 

спецификация устройства ввода-вывода в командной строке

 

 

обычно не указывается. Однако здесь потенциально могут быть

 

 

указаны и другие устройства ввода-вывода (3.07).

 

/E:1008

необязательный параметр, вызывающий

резервирование 1008

 

 

байт памяти для размещения переменных окружения.

 

 

Допускается резервировать от 256 до 32768 байт. По умолчанию

 

 

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

 

 

родительского окружения, но не менее 160 байт.

 

/L:512

 

необязательный

параметр,

устанавливающий

размер

 

 

внутреннего буфера 512 байт. Допускается от 128 до 1024 байт,

 

 

по умолчанию принимается 256 байт. Размер внутреннего

 

 

буфера должен быть достаточно большим, чтобы в нем уместить

 

 

командную строку после выполнения всех подстановок.

 

/U:255 –

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

 

 

буфера 255 байт. Допускается от 128 до 255 байт, по умолчанию

 

 

принимается 128 байт. Этот размер определяет максимальную

 

 

длину вводимой командной строки.

 

 

 

/Y

необязательный

параметр, задающий

пошаговый

режим

 

 

интерпретации строк batch-файлов. Параметр /Y несовместим с

 

 

параметром /P, и когда они указаны вместе, параметр /Y

 

 

игнорируется.

 

 

 

 

/C

этот параметр объявляет, что вслед за ним указано имя команды,

 

 

которую интерпретатору надлежит исполнить и потом выгрузить

 

 

свой резидентный модуль из памяти. Если вместо /C указать

 

 

параметр /K, то после исполнения команды резидентный модуль

 

 

интерпретатора останется в памяти, пока не поступит команда

 

 

EXIT (3.12). Вместо /C также можно указать параметр /P,

 

 

который не объявляет команду, а означает постоянную загрузку

 

 

интерпретатора с блокировкой выхода по команде EXIT.

 

 

Параметр /P должен быть последним в строке при загрузке

 

 

интерпретатора командой SHELL (4.26) из файла CONFIG.SYS.

R:\Trial.bat –

пример имени

файла, передаваемого на исполнение

 

 

интерпретатору COMMAND.COM. Имя исполняемого файла

 

 

можно указывать после параметров /C или /K, которые должны

 

 

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

– 169 –

Глава 6: Избранные программы для MS-DOS7

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

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

/MSG

заранее загрузить в память сообщения о возможных ошибках.

 

При сбоях, препятствующих считыванию текста сообщения из

 

файла, этот параметр обеспечивает воспроизведение на экране

 

адекватного сообщения об ошибке.

/LOW

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

 

обыкновенную память, то есть ниже границы 640 кбайт.

 

Параметр /LOW применяется преимущественно при первичной

 

загрузке совместно с параметром /P.

/F

этот параметр обеспечивает безостановочное исполнение с

 

игнорированием ошибок, как после ответа пользователя "Fail".

 

Параметр /F действует только совместно с параметром /C на

 

время исполнения одной команды. Но команда FOR (3.13)

 

распространяет действие параметра /F на все операции цикла, а

 

команда CALL (3.02) – на все операции batch-файла.

/Z

показывать код ошибки каждый раз после исполнения любой

 

программы, возвращающей значение кода ошибки.

Примечание 1: от параметра /C зависит то, как происходит прерывание исполнения batch-файлов (1.03).

Примечание 2: когда интерпретатор COMMAND.COM загружается впервые с параметром /P, то он по умолчанию начинает исполнение файла AUTOEXEC.BAT, который должен находиться в корневом каталоге текущего диска.

Примечание 3: если файл AUTOEXEC.BAT исполняется по умолчанию при запуске интерпретатора командой SHELL, то формальный параметр %0 не вызывает рекурсивного исполнения файла AUTOEXEC.BAT.

Примечание 4: когда командный интерпретатор COMMAND.COM запущен с параметром /K, он способен принимать на исполнение команды от

других процессов или из командных файлов через перенаправление ввода (еще об этом в разделах 2.04-02 и 2.04-05, а также в примечании 1 при вводной статье к разделу 6.05).

Примечание 5: исполняемые командным интерпретатором batch-файлы (имеющие суффикс *.BAT) непосредственно пользуются переменными окружения, принадлежащими интерпретатору. В отличие от этого обычные исполняемые файлы (с суффиксами *.COM и *.EXE)

получают в свое распоряжение только копии переменных окружения.

– 170 –

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]