Команда COMMAND загрузка нового интерпретатора командной строки

COMMAND предоставляет возможность фактически частичной перезагрузки ОС - перезагрузки интерпретатора командной строки.
При выполнении этой команды в зависимости от заданного набора ключей могут осуществляться следующие варианты перезагрузки интерпретатора командной строки:
-    загрузка новой копии резидентной части интерпретатора на время выполнения одной команды (такой вариант имеет место при задании ключа /С);
-    загрузка новой копий резидентной части интерпретатора на период до момента выполнения команды EXIT (этот вариант выбирается по умолчанию, если не задан ключ /С или /Р);
-    полная перезагрузка интерпретатора, включающая перезагрузку транзиентной части, расположенной в старших адресах оперативной памяти, без предоставления возможности возврата в старую версию (полная перезагрузка выполняется при специфицированном ключе /Р).

НАЗНАЧЕНИЕ. COMMAND загружает и запускает новый командный процессор без перезагрузки ОС, что позволяет найти наиболее простой выход во многих ситуациях. Рассмотрим отдельно каждую из них.
1.    В процессе работы может оказаться запорченной часть интерпретатора командной строки (командного процессора). Чаще всего это происходит при загрузке прикладных программ, использующих весь объем памяти компьютера. Такие программы могут накладываться на транзиентную в оперативной памяти часть интерпретатора командной строки, расположенную в старших адресах. В этом случае интерпретатор перезагружается с ключом /Р. В результате выполнения команды COMMAND с этим ключом интерпретатор командной строки в оперативной памяти полностью обновляется.
2.    С помощью команды COMMAND можно загрузить какую-либо оригинальную версию интерпретатора командной строки, благодаря чему можно изменить интерфейс с оператором (например, версию, разработанную пользователем и поддерживающую расширенный набор команд).
3.    Команда COMMAND позволяет организовывать обращения к внешним подпрограммам из пакетных файлов (см. описание команды EXIT).
4.    В результате выполнения команды COMMAND рези- ентная часть интерпретатора несколько сдвигается в сторону гарших адресов (создается новая оболочка), и сокращается вободный объем оперативной памяти. Такая возможность ногда используется при отладке или тестировании программ, ильно связанных с ОС.
5.    С помощью команды COMMAND, заданной с ключом Е, можно изменить размер системной области связи (окруже- [ия). Необходимость в этом возникает, например, когда при юпытке установить очередной параметр по команде SET сис- ема выдает сообщение об ошибке:
)ut of environment space
Места в окружении недостаточно).

ОПИСАНИЕ. COMMAND запускает новую копию интер- фетатора командной строки как дочерний процесс. Она может вдаваться многократно до тех пор, пока в системе имеется :вободная оперативная память. Выполнение каждой новой команды уменьшает размер оперативной памяти приблизительно ia 3,2 Кбайт плюс размер оболочки пользователя. Если для шполнения очередной команды COMMAND в системе не ока- кется необходимого свободного пространства оперативной памяти, то после ввода команды на дисплей выведется сообщение
Program too big to fit in memory
(Программа слишком велика для размещения в имеющейся памяти).
Команда COMMAND внешняя, выполняется программой, загрузочный модуль которой находится в загрузочном файле COMMAND.COM в текущем каталоге.

ФОРМАТ.
COMMAND [маршрут] [устройство] [/Р] [/С цепочка] [/Е:ХХХХХ]
Спецификация &.маршрут - каталог, содержащий файл загрузочного модуля программы COMMAND.
Параметр устройство - имя устройства, которое должно выполнять функции консольного терминала после загрузки новой копии интерпретатора. Имя устройства задается без двоеточия. В противном случае выводится сообщение
Specified COMMAND search directory bad
(Специфицирован некорректный каталог поиска COMMAND).
Это произойдет из-за того, что система воспримет имя устройства как продолжение параметра d.маршрут, а такого имени, естественно, не существует.
Параметр устройство задается довольно редко (как правило, при работе на компьютерах с нестандартной конфигурацией терминальных средств). По умолчанию в качестве параметра устройство принимается CON.
Ключ /Р делает новый командный процессор ведущим (после выполнения команды COMMAND возврат в старый по команде EXIT уже будет невозможен). Его загрузка в этом случае заканчивается выполнением пакетного файла AUTOEXEC.BAT.
Ключ /С цепочка выполняет команду, заданную цепочкой символов, с помощью нового процессора и возвращает управление старому командному процессору.
Ключ /Е:ХХХХХ устанавливает размер дополнительной памяти (окружения) командного процессора равным ХХХХХ байт. Это значение может изменяться от 160 до 32768 байт. По умолчанию он равен 160 байт. Если указанный размер меньше 160 или больше 32768 байт, система выводит сообщение
Invalid environment size specified (Специфицирован некорректный размер оболочки).
В первом случае размер окружения (системной области связи) устанавливается равным 160 байт, а во втором - 32768 байт. Команда COMMAND с ключом /Е обычно используется для переустановки размера (как правило, в сторону увеличения) системной области связи.

Пример 91. С:\PCC\T2\K2_2>chkdsk Volume PC_COMPL created Mar 21, 1990 6:07a
33462272 bytes total disk space
53248 bytes in 3 hidden files
75776 bytes in 37 directories 7847936 bytes in 197 user files
10240 bytes in bad sectors 25475072 bytes available on disk
655360 bytes total memory 568928 bytes free
C:\PCC\T2\K2_2>command
Microsoft(R) MS-DOS(R) Version 3.30
(C) Copyright Microsoft Corp 1981-1987
C:\PCC\T2\K2_2>chkdsk
Volume PCCOMPL created Mar 21, 1990 6:07a
33462272 bytes total disk space 53248 bytes in 3 hidden files 75776 bytes in 37 directories 7849984 bytes in 197 user files 10240 bytes in bad sectors 25473024 bytes available on disk
655360 bytes total memory 565264 bytes free
C:\PCC\T2\K2_2>exit
C:\PCC\T2\K2_2>command /e:32000
Microsoft(R) MS-DOS(R) Version 3.30
(C) Copyright Microsoft Corp 1981-1987
C:\PCC\T2\K2_2>chkdsk
Volume PC COMPL created Mar 21, 1990 6:07a
33462272 bytes total disk space 53248 bytes in 3 hidden files 75776 bytes in 37 directories 7849984 bytes in 197 user files 10240 bytes in bad sectors 25473024 bytes available on disk
655360 bytes total memory 533424 bytes free

Пример 92. C:\PCC\T2\K2_2>command /с dir ..

Пример 93.
C:\PCC\T2\K2_2>command
Microsoft(R) MS-DOS(R) Version 3.30
<C)Copyright Microsoft Corp 1981-1987
C:\PCC\T2\K2_2>command
Microsoft(R) MS-DOS(R) Version 3.30
(C) Copyright Microsoft Corp 1981-1987
C>command
Program too big to fit in memory C>

Замечания к примерам. Из примера 91 видно, как изменяется объем свободной оперативной памяти в системе после выполнения команд COMMAND, задаваемых с различны^ параметрами. В этом примере с помощью команды CHKDSK показано, что до выполнения команды COMMAND в распоряжении пользователя находилось 568928 байт оперативной памяти, а по ее выполнении это количество уменьшилось на 3664 байт. После возврата в старый командный процессор по команде EXIT была выполнена команда COMMAND, в результате чего размер оболочки пользователя увеличился до 32000 байт (в предыдущем случае он устанавливался равным 160 байт по умолчанию). Третья команда CHKDSK показывает, что после выполнения команды COMMAND с ключом /Е:32000 объем свободной оперативной памяти в системе составил 533424 байт.
Как видно из примера, издержки оперативной памяти на установку нового командного процессора можно рассчитать по формуле
V = 3504 + IS,
где IS - размер оболочки.

В примере 92 показано выполнение команды распечатки каталога с помощью команды DIR нового интерпретатора, которая формирует справку с указанием суммарного размера дискового пространства, занимаемого файлами, имена которых выведены на экран.


В примере 93 программа COMMAND работала в условиях дефицита оперативной памяти. Первый раз она завершилась успешно, во второй - произошло усечение оболочки (об этом косвенно можно судить по изменению формата подсказки). Третья команда не выполнена из-за отсутствия оперативной памяти.
 


Обсудить вопрос в студенческом форуме

 

Сайт содержит информацию о учебном заведении и студенческой общине и не является официальным