5.6.6. Команды управления системой
Команда COMMAND
Назначение: запуск вторичной копии КП DOS.
Тип: внешняя.
Синтаксис:
COMMAND [dir] [устройство] [/Е:п] [/P] [/С process] [/F] [/D]
Комментарии. По команде COMMAND принудительно запускается вторичная копия КП из файла COMMAND.COM (исполняется
именно данный файл). Первичная же копия КП, инициированная во время загрузки DOS, остается при этом в ОЗУ, но теряет активность.
Запуск вторичной копии КП используется для:
— создания вложенных командных файлов, причем в версиях DOS до 3.3 команда COMMAND была единственным средством для этого (с переключателем /С);
— выдачи внутренней команды DOS из выполняемой
программы в автоматическом режиме, т.е. без участия пользователя (с
переключателем /С);
— имитации временного возврата в DOS из выполняемой
программы, в результате чего можно работать с КП в интерактивном режиме, а в
нужный момент возобновить активность программы (без переключателей /Р и /С);
— увеличения размера области памяти для окружения DOS (с переключателем
/Е);
— частичного рестарта DOS для устранения
сбоев (с переключателем /Р);
— перевода КП в режим, при котором в случае ошибки
ввода-вывода в зависимости от версии DOS автоматически
генерируется ответ F для Fail или I для Ignore (с переключателем /F).
Накладные расходы памяти, связанные с запуском
вторичной копии КП, невелики, так как для хранения его резидентного модуля
требуется всего 4 Кбайт ОЗУ.
Вновь запущенному КП
передается копия окружения, сформированного до этого. Следовательно, никакие
изменения в копии окружения не окажут воздействия на его оригинал.
Аргумент dir указывает, где
находится файл с КП (COMMAND.COM). Спецификация dir служит для
обновления значения глобальной переменной COMSPEC в окружении DOS. Значение COMSPEC, как мы уже знаем,
используется при подгрузке транзитного модуля КП.
Каталог dir задавать не обязательно, если COMSPEC в оригинале
окружения правильно специфицирует файл COMMAND.CЦM. Несоответствие,
требующее указания dir, может возникнуть
только в случае, когда размещение рабочего файла C0MMAND.COM перед запуском вторичной Копии КП изменено, а значение переменной COMSPEC осталось немодифицированным. Отметим, что dir также способствует отысканию файла COMMAND.COM собственно при запуске вторичной копии КП.
Однако в этом нет необходимости, так как можно указать маршрут перед COMMAND.
Задание аргумента устройство приводит к тому,
что оно становится стандартным УВВ DOS (см. описание
команды CITY). По умолчанию принимается CON.
Переключатели определяют следующие действия:
/Е:п — специфицирует (в байтах) размер области памяти для окружения DOS. Допустимы
значения п от 128 до 32768, кратные 16-ти. По умолчанию принимается 128;
/Р — обеспечивает запуск КП в интерактивном резидентном режиме с
автоматическим выполнением файла AUTOEXEC.BAT, возврат в первичную копию КП
становится невозможным;
/С process — обеспечивает запуск КП с целью выполнения команды DOS, заданной посредством process, и автоматический возврат в родительский процесс, в частности в
первичную копию КП DOS;
/F — обеспечивает запуск КП в режиме, когда в
случае ошибки ввода-вывода (по которой выдается сообщение
«Abort, ...») в зависимости от версии DOS автоматически
генерируется ответ F или I;
/D — обеспечивает отключение выдачи запросов о дате и о времени в случае отсутствия файла автозапуска
AUTOEXEC.BAT.
Переключатели /Р и /С функционально
несовместимы. Однако синтаксически их одновременное указание допустимо (при
этом /Р игнорируется). Если ни один из переключателей /Р и /С не задан, то КП
запускается в интерактивном режиме, но AUTOEXEC.BAT не выполняется и возможен
возврат в родительский
процесс по команде ЕХГГ. Задавать в переключателе /С целесообразно только
внутреннюю команду DOS, так как внешняя команда может быть
выполнена без явного участия КП как автономная программа. Переключатель /F можно использовать,
например, перед копированием данных с дефектной дискеты, чтобы избавиться от
многократной явной выдачи одного и того же ответа. Данный переключатель может
использоваться совместно с переключателем /Р или /С. Переключатель /D имеет смысл специфицировать только вместе с
переключателем /Р.
Замечания:
— если число в переключателе /Е выходит за
допустимые границы, то на экран дисплея выводится сообщение «Involid environment size specified («Специфицирован ошибочный размер окружения»). Однако выполнение
команды продолжается, а для окружения выделяется память минимально или
максимально возможного размера в зависимости от
заданного л;
— если число в переключателе /Е не кратно 16, то оно
будет автоматически скорректировано без каких-либо сообщений об этом;
— пробелы между /С и process в командной строке
необязательны;
— если переключатель /С не
задан, то независимо от указаний в командной строке всегда задается вторичная копия КП;
— переключатели /F и /D не документированы, а использовать /V нужно в высшей степени осторожно;
— текущий привод и текущие каталоги при запуске
вторичной копии КП не изменяются;
— вид приглашения DOS, а также режимы VERIFY и BREAK вторичной копией КП наследуются;
— режим, заданный переключателем /F, вторичной копией КП не наследуется;
— глубина вложенности копий КП не ограничивается.
Примеры:
■ command /Е:512 /Р — запустить копию КП в резидентном
интерактивном режиме с 512-Кбайт окружением;
■ command /С DIR A:*.BAS — выполнить
команду DIR A:*.BAS (имеет смысл
задавать только в программе).
■ command /F — запустить копию КП в нерезидентном
интерактивном режиме с автоматической генерацией ответа F или I при возникновении ошибок ввода-вывода.
DOS 4.0. Минимальным размером окружения (и значением
по умолчанию) является 160 Кбайт.
Команда ЕХIT
Назначение: выход из КП и возврат на предыдущий уровень.
Тип: внутренняя.
Синтаксис:
EXIT
Комментарии. Эта команда обеспечивает возврат управления
интерактивной вторичной копией КП родительскому процессу (КП или программе).
Команда ЕХIT не действует на первичную копию КП. запускаемую при загрузке DOS, и на вторичную копию, если последняя
запущена с переключателем /Р (см. описание команды COMMAND).
Остужение, сформированное в ходе работы вторичной копии
КП, удаляется, а окружение родительского КП (или другого процесса) восстанавливается. Не возвращаются
также новый вид приглашения DOS и режим, заданный командой COMMAND /F. Однако текущий привод и текущие каталоги, а также режимы VERIFY и BREAK остаются теми, которые установлены вторичной копией.