Команды управления системой

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 остаются теми, которые установлены вторичной копией.