Команда COMMAND
Запускает новый экземпляр интерпретатора команд MS-DOS. Параметр команды - это программа, которая выводит командную подсказку, в которой вы набираете команды. Для остановки нового командного интерпретатора и возврата в старый используйте команду EXIT.
COMMAND [[диск:]маршрут] [устройство] [/E:nnnnn] [/Y [/C строка /K имя_файла]]
В файле CONFIG.SYS используйте следующий синтаксис:
SHELL=[[диск_dos:]маршрут_dos]COMMAND.COM [[диск:]маршрут][устройство] [/E:nnnn] [/P [/MSG]]
Параметр [диск:]маршрут задает каталог интерпретатора команд для поиска файла COMMAND.COM, когда требуется перезагрузка нерезидентной части. Этот параметр нужно включать при первоначальной загрузке COMMAND.COM, если он не находится в корневом каталоге. Он используется для установки переменной операционной среды COMSPEC.
Например, команда command /c second.bat задает, что командный интерпретатор MS-DOS должен запускать из текущей программы новый командный интерпретатор, выполняет командный файл SECOND.BAT, а затем возвращается к исходному командному интерпретатору.
Параметр "устройство" задает для ввода и вывода команд другое устройство (подробнее об этом см. в описании команды CTTY). Параметр "[диск_dos:]маршрут_dos" задает расположение файла COMMAND.COM. С помощью параметра "устройство" вы можете задать для ввода и вывода другое устройство (например, AUX).
Параметр "устройство" задает для ввода и вывода команд другое устройство (подробнее об этом см. в описании команды CTTY).
Параметр "[диск_dos:]маршрут_dos" задает расположение файла COMMAND.COM. С помощью параметра "устройство" вы можете задать для ввода и вывода другое устройство (например, AUX).
Параметр "/C строка" задает определяет, что интерпретатор команд должен выполнить команду, заданную строкой, и возвращает управление. Этот параметр должен быть последним в командной строке.
/E:nnnnn задает размер операционной среды, где nnnnn - это размер в байтах. Значение nnnn должно лежать в диапазоне от 160 до 32768. MS-DOS округляет это значение до 16 байт. По умолчанию оно равно 256. Если nnnnn лежит вне указанного диапазона, MS-DOS использует значение по умолчанию и выводит следующее сообщение:
Parameter value not in allowed range. (Параметр не находится в допустимом диапазоне.)
/ K имя_файла выполняет заданную программу или командный файл, а затем выводит командную подсказку MS-DOS. Этот параметр должен быть последним в командной строке. Этот параметр особенно полезен для задания стартового командного файла в подсказке MS-DOS в Windows (аналогично AUTOEXEC.BAT для MS-DOS). Для этого откройте с помощью PIF Editor файл DOSPRMPT.PIF и наберите в окне Optional Parameters параметр /K. Параметр /K не рекомендуется использовать в командной строке SHELL в файла CONFIG.SYS. Это может привети к проблемам в приложениях и программах установки, которые модифицируют файл AUTOEXEC.BAT.
Параметр /P следует указывать только когда COMMAND используется в команде SHELL файла CONFIG.SYS. /P делает новую копию командного интерпретатора постоянной. В этом случае для остановки командного интерпретатора нельзя использовать команду EXIT. Если вы задаете /P, MS-DOS перед выводом командной подсказки выполняет ваш файл AUTOEXEC.BAT. Если этот файл отсутствует в корневом каталоге загружаемого диска, то MS-DOS выполняет вместо него команды DATE и TIME. Если в CONFIG.SYS у вас отсутствует команда SHELL, то COMMAND.COM автоматически загружается из корневого каталога с параметром /P.
Параметр /MSG определяет, что все ошибки следует сохранять в памяти. Обычно сообщения сохраняются только на диске. При задании /MSG нужно указать параметр /P. Если вы запускаете MS-DOS с гибкого, а не с жесткого диска, и не указан параметр /MSG, то при отсутствии на диске A файла COMMAND.COM MS-DOS не сможет считать такие сообщения об ошибках. При отсутствии этого диска MS-DOS выводит вместо полного следующее короткое сообщение:
Parse error Extended error
При запуске нового командного интерпретатора MS-DOS создает новую командную среду. Эта новая среда является копией порождающей среды. Вы можете изменить новую среду, не влияя на старую. По умолчанию размер новой среды равен 256 байт или размеру текущей операционной среды, округленному до следующих 16 байт (в зависимости от того, что больше). Для переопределения используемого по умолчанию размера укажите параметр /E.
Параметр /Y указывает COMMAND.COM, что командный файл, заданный параметрами /C или /K, нужно выполнит по шагам. Этот параметр полезно использовать для отладки командных файлов. Например, чтобы построчно выполнить по шагам командный файл TST.BAT, вы можете воспользоваться командой COMMAND /Y /C TST. Параметр /Y требует указания параметра /C или /K.
Используя параметр устройства, вы можете задать для ввода и вывода другое устройство (например, AUX).
При запуске нового командного интерпретатора MS-DOS создает новую командную среду. Эта новая среда является копией порождающей среды. Вы можете изменить новую среду, не влияя на старую. По умолчанию размер новой среды равен 256 байт или размеру текущей операционной среды, округленному до следующих 16 байт (в зависимости от того, что больше). Для переопределения используемого по умолчанию размера укажите параметр /E.
MS-DOS загружает интерпретатор команд двумя частями: резидентную часть (которая всегда находится в памяти) и временную (нерезидентную) часть (в старших адресах обычной памяти). Некоторые программы записываются при запуске только нерезидентную часть COMMAND.COM. Когда это происходит, резидентная часть должна находить файл COMMAND.COM на диске и перезагружать нерезидентную часть. Переменная операционной среды COMSPEC идентифицирует, где располагается на диске COMMAND.COM. Если COMSPEC установлена на гибкий диск, MS-DOS может выводить вам подсказку для вставки гибкого диска с COMMAND.COM.
Если MS-DOS загружается в старшую память, то резидентная часть COMMAND.COM также загружается в старшую память, освобождая обычную память для программ.
COMMAND называется командным интерпретатором (или командным процессором), так как он считывает любые набираемые вами команды и обрабатывает их. Некоторые команды распознаются и выполняются самим COMMAND. Эти команды считаются для COMMAND внутренними. Другие команды MS-DOS представляют собой отдельные программы, расположенных на жестком диске, которые MS-DOS загружает аналогично другим программам. COMMAND интерпретируют следующие команды MS-DOS: BREAK, CALL, CHCP, CHDIR, CLS, COPY, CTTY, DATE, DEL, DIR, ECHO, EXIT, FOR, GOTO, IF, LOADHIGH, MKDIR, PATH, PAUSE, PROMPT, REM, RENAME, RMDIR, SET, SHIFT, TIME, TYPE, VER, VERIFY, VOL.
Приведем примеры. Следующая команда задает, что интерпретатор MS-DOS должен запустить из текущей программы новый командный процессор, затем запускает командный файл TST.BAT и возвращается к первому командному интерпретатору:
command /c tst.bat
Следующая команда CONFIG.SYS, определяет, что COMMAND.COM находится в каталоге DOS на диске D:
shell=d:\dos\command.com d:\dos\ /e:1024
Эта команда устанавливает переменную операционной среды COMSPEC в C:\DOS\COMMAND.COM. Для данного командного интерпретатора она задает размер среды в 1024 байта.
Примечание:
Если Вам важно обеспечить больший размер окружения для сеансов DOS в Windows, не расходуя обычную память, то можете включить в раздел [NonWindowsApp] файла SYSTEM.INI строку вида:
CommandEnvSize=512
Тем самым для сеанса DOS будет установлено 512-байтное окружение.