| COMMAND.COM | |
|---|---|
| Тип | Командный интерпретатор |
| Разработчик | Seattle Computer Products, Microsoft, IBM, Novell и др. |
| Операционная система | DOS (MS-DOS, DR-DOS, FreeDOS и т. д.), OS/2, Windows 9x и др. |
| Языки интерфейса | Мультиязычный |
COMMAND.COM — интерпретатор командной строки в операционных системах DOS, OS/2, семейства Windows 9x и ряда других. Загружается при старте системы или VDM (если не указан другой интерпретатор с помощью директивы SHELL= в файле CONFIG.SYS) и выполняет команды из файла AUTOEXEC.BAT. [1]
В операционных системах семейства Windows NT (начиная с Windows NT 3.1 и заканчивая Windows 10 / Windows Server 2012) и OS/2 интерпретатором командной строки является программа cmd.exe. Однако, для совместимости с DOS-приложениями, COMMAND.COM присутствует и в версиях этих систем для процессоров архитектуры IA-32.
Содержание
Содержание
Режимы работы [ править | править код ]
COMMAND.COM имеет два режима работы. Первый режим — интерактивный, когда пользователь вводит с клавиатуры команды, которые немедленно выполняются. Второй режим — пакетный, когда COMMAND.COM выполняет последовательность команд, заранее сохранённую в пакетном файле с расширением .BAT. Функции COMMAND.COM аналогичны функциям командных интерпретаторов Unix-совместимых операционных систем (например, bash), с тем отличием, что COMMAND.COM имеет более ограниченный набор возможностей. [2] [3]
Команды [ править | править код ]
Команды COMMAND.COM делятся на внутренние, и внешние. Внутренние команды поддерживаются самим COMMAND.COM, внешние команды являются файлами, которые хранятся на дисках и имеют расширение .COM, .EXE или .BAT. [4] [5]
Часть внутренних команд используются в пакетных файлах для их оформления, организации их работы и для управления последовательностью выполнения прочих команд. Среди них:
:имя_метки Задание имени метки для команды GOTO . Часто используется и в качестве комментария. FOR Повтор некоторой команды для каждого файла из заданного списка. GOTO Переход к метке внутри пакетного файла. REM Комментарий: любой текст в строке после этой команды игнорируется. IF Задание условия, в зависимости от которого происходит выполнение разных команд. CALL Приостановка выполнения текущего командного файла, запуск другого, по окончании работы вызванного файла возобновление выполнения текущего файла. [6] START Запуск исполняемого или командного файла, указанного в параметре этой команды, без ожидания завершения его выполнения (только под Windows).
Переменные [ править | править код ]
Пакетные файлы для COMMAND.COM имеют четыре типа переменных:
- ERRORLEVEL содержит код возврата последней из запущенных программ (к примеру, в языке программирования Си код можно вернуть с помощью return в функции main). [7][8] Как правило, ERRORLEVEL используется для индикации ошибок при работе программы и код 0 означает успешное завершение. Но это относится в основном к утилитам командной строки (которые ориентированы на использование в пакетных файлах), прикладные программы обычно не заботятся о возврате конкретных значений, поэтому после них в ERRORLEVEL всегда оказывается нулевое значение или даже мусор. [9][10] В оригинальном COMMAND.COM код возврата можно было проверить только с помощью конструкции IF ERRORLEVEL [11] , однако в некоторых клонах DOS, а также Windows семейства NT, добавлена возможность обращения к ERRORLEVEL как к обычной переменной. [12][13]
- Переменные могут быть заданы с помощью команды SET . [14] Чтобы получить их значение, нужно имя переменной окружить знаками % (например, %path% ), в этом случае в месте использования такой конструкции будет подставлено значение переменной. [15] Некоторые из этих переменных стандартизованы (PROMPT, PATH, TEMP и т. п.), некоторые задаются системой (CONFIG), остальные задаются и используются пользователями. Хранятся эти переменные в «окружении» (environment) и называются «переменными окружения». [16]
- Аргументы пакетных файлов в самих пакетных файлах доступны как %1…%9. [17] Переменная %0 содержит текст команды (без аргументов), использованной для запуска пакетного файла. [18]
- Переменные для команды FOR имеют вид %%a и используются в пакетных файлах совместно с этой командой. [18]
Параметры командной строки [ править | править код ]
COMMAND.COM может быть запущена не только в ходе начальной загрузки, но и, подобно любому исполняемому файлу MS-DOS, другой программой с помощью стандартной функции MS-DOS EXEC (функция 4bH прерывания 21H). При запуске без параметров запускается экземпляр интерпретатора, и управление передаётся пользователю, который может закрыть этот экземпляр и вернуть управление породившей его программе, введя команду EXIT . Но намного чаще используется запуск COMMAND.COM из других программ с параметрами /C и (реже) /K.
Параметр /C [ править | править код ]
Параметр /C предназначен для запуска в пакетном режиме. Синтаксис запуска: COMMAND.COM /C команда Командой может быть любая внутренняя или внешняя команда COMMAND.COM, в том числе BAT-файл. После исполнения команды работа COMMAND.COM завершается, и управление возвращается породившей его программе.
Параметр /K [ править | править код ]
Параметр /K полностью аналогичен параметру /C с той разницей, что после исполнения команды экземпляр интерпретатора не завершается, и управление передаётся пользователю, который может закрыть этот экземпляр и вернуть управление породившей его программе, введя команду EXIT .
Остановимся более подробно на той роли, которую играет в работе операционной системы командный процессор COMMAND.COM. Выделение его в отдельный блок было обусловлено желанием разработчиков MS DOS предусмотреть возможность гибкой замены синтаксиса системы управляющих команд.
Взаимодействие пользователя с операционной системой осуществляется с помощью командной строки. В начале командной строки всегда имеется приглашение (к вводу команды) MS DOS. По умолчанию в качестве приглашения выводятся имена текущих диска (логического устройства) и каталога. Приглашение заканчивается символом >. В принципе, его внешний вид по желанию пользователя может быть изменен: в строке могут быть отображены текущее время и дата, путь, символы-разделители и т. п. Простейший вид командной строки с набранной командой (dir/w) выглядит следующим образом: С:UTIL>dir /w.
Работа в операционной системе MS DOS организуется с помощью команд, которые вызывают определенную последовательность действий компьютера.
Ввод команды осуществляется в командной строке в соответствии со следующими правилами:
· команда DOS состоит из имени команды (вводится латинскими буквами, регистр не имеет значения) и отделенных от него пробелом параметров (ключей, опций), уточняющих действия команды;
· формат параметров определяется исключительно внутренней логикой работы команды. В некоторых случаях они могут просто отсутствовать. Часто в качестве признака начала параметра (или для отделения параметров друг от друга) используются символы / или -. В состав параметров могут входить имена файлов.
Для того чтобы получить контекстную справочную информацию по формату команды, ее надо ввести с параметром /?, например: С:UTIL>copy /?.
Для ввода команды следует:
· в соответствии с форматом в командной строке набрать имя и необходимые параметры команды;
· нажать клавишу ввода — . При отсутствии ошибок в формате команды будет выполнено указанное действие, а при их наличии — выведено соответствующее сообщение.
При вводе команды пользователем управление передается командному процессору Command.com, первой функцией которого является синтаксический анализ.
Можно сформулировать несколько принципов классификации команд операционной системы MS DOS:
1. по способу реализации: резидентные (внутренние, встроенные); транзитные (внешние, утилиты, обслуживающие);
2. по функциональному назначению:команды для работы с каталогами, с файлами, с дисками, для управления памятью и устройствами, для конфигурирования системы и др.
Резидентные (встроенные) команды входят в состав командного процессора COMMAND.СОМ и после окончания загрузки операционной системы MS DOS располагаются в оперативной памяти, доступны в любой момент времени. В качестве примера встроенных команд могут быть названы:
· DIR — выводит информацию о содержании, каталогов логических устройств;
· COPY — выполняет операции копирования файлов и каталогов;
· DEL — выполняет операции удаления файлов и каталогов;
· REN — выполняет операции по переименованию файлов и каталогов;
· CLS — очищает содержимое экрана;
· DATE — вывод/корректировка текущей даты;
· TIME — вывод/корректировка текущего времени;
· PATH — вывод/задание списка каталогов, в котором (последовательно) будет искаться файл с запускаемой программой, если он не найден в текущем каталоге и явно не задано его полное имя.
Транзитные команды (утилиты) реализуются в виде файлов с расширениями *.СОМ или *.ЕХЕ. С точки зрения процедуры запуска они ничем не отличаются от любых других служебных и прикладных программ, не входящих в операционную систему.
Идеология реализации основной части функций операционной системы через внешние утилиты, заложенная в MS DOS, позволила на начальном этапе развития обеспечить исключительную компактность ее ядра, что было очень важно для первых моделей персональных компьютеров, ограниченных по аппаратным возможностям. В дальнейшем это обеспечило широкие возможности по наращиванию функциональности системы исключительно за счет добавления все новых и новых утилит. Одновременно такая открытость в организации MS DOS очень быстро сформировала развитой рынок дополнительного сервисного программного обеспечения, предлагаемого независимыми по отношению к Microsoft разработчиками.
Среди наиболее «популярных» DOS-утилит могут быть названы:
· FORMAT — программа форматирования внешних запоминающих устройств;
· SCANDISK — служебная программа проверки состояния дисков;
· FDISK — утилита для разбиения жестких дисков на логические разделы;
· XCOPY — утилита, реализующая расширенные операции копирования файлов и каталогов.
Особенностью MS DOS является то, что любая строка, не распознанная синтаксическим анализатором в качестве внутренней команды, считается именем файла, содержащим программу (служебную или прикладную), которую следует выполнить. Если такой файл не удается найти, то выводится сообщение
Имя команды или файла указано неправильно
или в англоязычных версиях
Bad command or file name
Таблица 1 содержит стандартные типы расширений имен файлов, часто встречающихся в MS DOS и DOS-совместимых операционных системах.
Таблица 1. Стандартные типы файлов и их расширения
| Расширение | Тип файла |
| *.СОМ | Исполняемый файл (компактный файл, размером до 64 Кбайт) |
| *.ЕХЕ | Исполняемый файл |
| *.ВАТ | Командные (пакетные) файлы |
| *.DAT | Файл сданными |
| *.НЕХ | Файл с данными, представляемыми в шестнадцатеричном формате |
| *.OVR | Файл с оверлейными (догружаемыми в процессе выполнения) частями программ |
| *.DLL | Файл с динамически компонуемыми библиотеками (Dynamic Linked Libraries). Содержит программные модули, общие дли различных задач в формате MS Windows, которые ими вызываются в процессе выполнения |
| *.ВАК | Резервная копия файла, сохраняемая перед началом каких-либо операций с ним (от англ. backup) |
| *.SYS | Системный файл |
| *.ТМР | Временный файл |
| *.TXT | Текстовый файл |
| *.DOC | Файл с документом (допустим в формате текстового процессора MS Word) |
| *.BAS | Файл с текстом программы на языке BASIC |
| *.PAS | Файл с текстом программы на языке Паскаль (Pascal) |
| *.C | Файл с текстом программы на языке С |
| *.OBJ | Объектный модуль — скомпилированная программная процедура, переведенная в машинные коды |
| *.LIВ | Библиотека — объединенная в единый файл специального формата совокупность объектных файлов |
Достаточно часто при работе с операционной системой возникает необходимость организации автоматического выполнения целого ряда команд (одной за другой), или, как еще говорят, пакетного выполнения. Средством пакетной обработки является командный (пакетный) файл. Он облегчает работу пользователя за счет автоматизации выполнения часто повторяющейся совокупности команд и освобождает его от необходимости запоминания многих деталей и тонкостей форматов команд.
Командные файлы, работающие в операционной среде MS DOS, имеют расширение *.ВАТ (от английского batch — пачка).
Командный файл с точки зрения внутреннего содержания представляет собой текстовый файл и может быть создан в любом текстовом редакторе. Его текст состоит из последовательности команд управления операционной системой, которые, вообще говоря, могли быть введены пользователем с клавиатуры. Помимо этого в командном файле могут содержаться специальные операторы, накладывающие простейшие логические ограничения на процесс выполнения.
Дата добавления: 2015-08-21 ; просмотров: 1535 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
В операционных системах Ms Dos и Windows команды выполняются с помощью специальной программы – интерпретатора команд command.com. Некоторые команды распознаются и выполняются самим командным процессором – они называются внутренними, другие представляют собой отдельные программы – их называют внешними (утилитами).
Внутренними командами являются:
| Команда | Описание |
| BREAK | прерывание |
| CALL | вызов командного файла |
| CHCP | вывод или смена текущей кодовой страницы |
| CHDIR | смена каталога |
| CLS | очистка экрана |
| COPY | копирование файлов |
| CTTY | смена устройства вывода – экран, принтер и т.д. |
| DATE | просмотр и установка даты |
| DEL | удаление файла |
| DIR | вывод информации о содержимом дисков и каталогов |
| ECHO | вывод строки на экран |
| EXIT | выхода из интерпретатора command.com |
| FOR | оператор цикла в bat-файлах |
| GOTO | оператор перехода в bat-файлах |
| IF | условный оператор в bat-файлах |
| LOADHIGH | загрузка программы в область верхней памяти |
| MKDIR | создание каталога |
| PATH | указание списка путей для автоматического поиска |
| PAUSE | пауза до нажатия любой клавиши |
| PROMPT | установка формата командной строки |
| REM | комментарий в командных файлах |
| RENAME | переименование файла |
| RMDIR | удаления каталога |
| SET | установка переменных окружения |
| SHIFT | сдвиг параметров для пакетного файла |
| TIME | просмотр и установка времени |
| TYPE | просмотр файла |
| VER | вывод версии |
| VERIFY | контроль записи |
| VOL | информация о томе |
Все остальные команды являются внешними и хранятся в виде исполняемых файлов в папке C:WindowsCommand.
Для работы с командной строкой в Windows можно выполнить Пуск/Программы/Сеанс Ms-Dos, запустить файл command.com непосредственно или использовать файловые менеджеры FAR, Norton Commander. При запуске cоmmand.com можно использовать ключи (кстати, их мы уже упоминали в параметре SHELL файла config.sys). Кроме указанных там параметров /P (загрузка в память) и /E (размер области переменных окружения) интересны параметры /Y (выполнение пакетного файла по шагам – для отладки), /C (исполнение указанной далее программы и возврат), /K (исполнение команды с продолжением). Используя ключ /C, например, можно создавать ярлыки для выполнения внутренних команд.
Отметим сначала несколько особенностей опеределения путей к файлам Windows. Файловая система имеет древовидную структуру и имена файлов задаются в формате [диск:] [путь]имя_файла. Если путь начинается с символа «», то маршрут вычисляется от корневого каталога – иначе от текущего. Например, c:123.txt задает файл 123.txt в текуем каталоге, c:123.txt – в корневом, а DOC123.txt – в подкаталоге DOC текущего каталога.
Существуют особые обозначения для текущего каталога (точка «.») и трех его верхних уровней (две точки «..» — родительский, три «…» — второго уровня и, наконец, четыре «….» — третьего уровня). Например, для текущего каталога C:WindowsMediaOffice97 путь к файлу autoexec.bat в корневом каталоге диска C: может быть записан в виде ….autoexec.bat.
В именах файлов можно применять шаблоны * (произвольное кол-во любых символов) или ? (один произвольный символ или его отсутствие). Для того, чтобы использовать длинные имена файлов при работе с командной строкой их нужно заключать в двойные кавычки “.
В синтаксисе командной строки особое место занимает перенаправление ввода-вывода с помощью символа «>» на стандартное устройство (PRN, COM1 и т.п) или файл. Например, DIR /? > helpdir.txt выведет справку по команде DIR в файл. Символ «>>» позволяет не создавать файл заново, а дописать в него. По аналогии символ «
ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] [[диск:][путь]имя_файла] [/S]
Используется для просмотра или установки атрибутов файлов. В Windows 9x можно использовать 4 атрибута:
· Read-Onlу (R) – только для чтения;
· System (S) – системный;
· Archive (A) – архивный;
· Hidden (H) – скрытый.
Установка атрибута проиводится ключом «+», снятие – «-». Ключ «/S» применяется для обработки файлов во всех подкаталогах указанного пути. Например, сделать все Word-файлы в каталоге «Мои документы» доступными только для чтения: ATTRIB +R “C:Мои документы*.doc”. Атрибуты фалов можно просмотреть/поменять в файловых менеджерах или проводнике (пункт «Свойства» в контекстном меню по правой клавише).
CHDIR (CD)[диск:] [путь]
Текущий каталог можно изменить с помощью команды CD. Например, переход в корневой каталог диска – CD , на уровень выше – CD .., в каталог «Мои документы» — CD ”Мои документы”. В Windows NT с помощью ключа /D можно сменить не только текущий каталог, но и диск, например: CD /D D:Texts. Кроме того, в Windows NT можно не заключать имена длинных каталогов в кавычки – CD .Мои документы.
COPY [/A | /B] источник [/A | /B] [+источник [/A | /B] [+ …]]
[результат [/A | /B]] [/V] [/Y | /-Y]
Наиболее часто используемая команда для копирования одного или нескольких файлов. Описание ключей сведено в таблицу:
| Параметр | Описание |
| источник | имя копируемого файла или файлов |
| /A | файл является текстовым файлом ASCII (символ + в конце) |
| /B | файл является двоичным |
| результат | каталог для результата копирования и/или имя создаваемого файла |
| /V | проверка правильности копирования путем сравнения источника и приемника |
| /Y | отключение режима запроса подтверждения на замену файлов |
| /-Y | включение режима запроса подтверждения на замену файлов |
Действие ключа /B означает копирование всего файла побайтно, а ключ /A приводит к копированию только данных, предшествующих первому символу конца файла. В качестве источника или результата при копировании можно указывать имена не только файлов, но усиройств компьютера:
· LPT1-LPT3 – соответствующие параллельные порты;
· AUX – устройство, присоединяемое к последовательному порту 1;
· COM1-COM3 — соответствующие последовательные порты;
· CON – терминал (при вводе – это клавиатура, а при выводе – монитор);
· NUL – пустое устройство (все операции игнорируются).
Например, для печати файла на принтере можно ввести команду COPY abc.txt PRN, для создания файла COPY CON my.txt (для конца файла ввести + ).
Команда COPY может объединять (склеивать) несколько файлов путем использования групповых знаков «*» и «?» (COPY /B *.dat all.dt) или знака конткатенации «+» (COPY /B 1.txt+2.txt 3.txt). Здесь ключ /B используется для предотвращения усечения соединяемых файлов, т.к. по умолчанию файлы считаются текстовыми.
Среди нелостатков команды COPY надо отметить невозможность копирования скрытых истемных файлов, замены файлов с атрибутом «Read Only», а также копирования открытых (занятых) файлов (в этом случае процеес просто прерывается). Некоторые из этих проблем можно решить с помощью утилиты XCOPY.
XCOPY источник результат [/A | /M] [/D[:дата]] [/P] [/S [/E]] [/W] [/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U] [/K] [/Y | /-Y]
Команда XCOPY работает только с файлами и каталогами (а не с устройствами). Используемые ключи рассмотрим в табличном виде:
| Ключ | Описание | Пример |
| /A | Копирование только файлов с установленным архивным атрибутом. Сам атрибут при этом не изменяется. | XCOPY С:A*.* D:B /A |
| /M | Копирование только файлов с установленным архивным атрибутом. После копирования атрибут снимается. | |
| /D | Копирует только файлы, измененные не ранее указанной даты. Если дата опущена – то если источник новее результата. | XCOPY C:MY*.* D:BACKUP /D |
| /S | Копирование каталогов с подкаталогами (кроме пустых), /E – в том числе пустых | XCOPY C:A*.* D:B /S /E |
| /W | Режим запроса на нажатие любой клавиши до начала копирования | |
| /C | Продолжение в случае возникновения ошибок | |
| /I | Копирование нескольких файлов, когда файл назначения отсутствует. В этом случае считает, что файл назначения д.б. каталогом и создает его без дополнительных запросов | XCOPY *.txt TEXT /I |
| /V (9x) | Сравнение конечных файлов с исходными | |
| /P | Вывод запросов перед созданием каждого нового файла | |
| /Q, /F, /L | Запрет вывода имен копируемых файлов, /L – вывод имен, /F – полных | |
| /G (2000) | Копирование зашифрованных файлов в каталог результата, не поддерживающий шифрование | |
| /H | Копирование скрытых и системных файлов (среди прочих) | |
| /R | Разрешение замены файлов, предназначенных только для чтения | |
| /T | Создание структуры каталогов (кроме пустых каталогов) без копирования файлов. Если требуется создать пустые каталоги и подкаталоги — /T /E. | |
| /U | Копирование только файлов, уже имеющихся в конечном каталоге | |
| /K | Копирование атрибута "Только чтение" (обычно он сбрасывается) | |
| /N | Использование коротких имен при копировании | |
| /O (NT) | Копирование сведений о владельце и данных ACL | |
| /X (NT) | Копирование параметров аудита файлов (требует /O) | |
| /Y /-Y | Подавление (обязательный) запроса подтверждения на перезапись существующего конечного файла | |
| /Z (NT) | Копирование сетевых файлов с возобновлением | |
| /EXCLUDE:файл1[+файл2]… (NT) | Исключение определенных файлов из операции копирования | XCOPY *.txt D:TeXT /EXCLUDE:1.xtx |
При использовании команды XCOPY внутри пакетных файлов по переменной ERRORLEVEL (см. в след. разделе) можно анализировать код выхода (завершения) команды (0 – без ошибок, 1 – файлы не найдены, 2 – прерывание по + , 4 – не хватает места, ошибка в назначении или синтаксисе, 5 – ошибка записи на диск).
DIR [диск:][путь][имя_файла] [/A[[:]атрибуты]] [/B] [/C] [/D] [/L] [/N] [/O[[:]порядок]] [/P] [/Q] [/S] [/T[[:]время]] [/W] [/X] [/4]
Выводит информацию о содержимом дисков и каталогов. При использовании без ключей выводит метку диска, имена (в коротком и длинном вариантах) файлов и подкаталогов, находящихся в текущем подкаталоге, а также дату и время их последней модификации. В завершении выводится общее число файлов в каталоге, их объем и размер свободного пространства. Ключи команды DIR позволяют задать различные режимы расположения, фильтрации и сортировки выводимой информации:
| Ключ | Описание | Пример |
| /A | Вывод файлов с указанными атрибутами (D-каталоги, A, R, S, H – как обычно. Префикс «-» будет иметь значение НЕ. | DIR C: /A:HS |
| /B | Вывод только имен файлов (переопределяет /W) | |
| /C | Применение разделителя групп разрядов для вывода размеров файлов (по умолчанию). Для отключения /-C. | |
| /D (NT) | Вывод списка в несколько столбцов с сортировкой по столбцам | |
| /L | Использование нижнего регистра для имен файлов | |
| /N | Отображение имен файлов в крайнем правом столбце | |
| /O | Сортировка списка отображаемых файлов (префикс "-" обращает порядок): · N — по имени (алфавитная) · S — по размеру (сперва меньшие) · E — по расширению (алфавитная) · D — по дате (сперва более старые) · G — начать список с каталогов · A – по дате загрузки (начиная с более старых) По умолчанию файлы и каталоги выводятся в том порядке, в котором хранятся на диске. | DIR /O:N |
| /P | Пауза после заполнения каждого экрана | |
| /Q (NT) | Вывод сведений о владельце файла | |
| /V (9x) | Вывод расширенных сведений о файлах и каталогах | |
| /S | Вывод списка файлов из указанного каталога и его подкаталогов | |
| /T | Выбор поля времени для отображения и сортировки: · C – создание · A — последнее использование · W — последнее изменение | |
| /W | Вывод списка в несколько столбцов | |
| /X | Отображение коротких имен для файлов, чьи имена не соответствуют стандарту 8.3 | |
| /4 (9x) | Вывод номера года в четырехзначном формате |
Стандартный набор ключей можно записать в переменную среды DIRCMD. Для отмены их действия введите в команде те же ключи с префиксом "-", например: /-W. Команда DIR (так же как и другие) поддерживает перенаправление ввода-вывода (символы «>» и «>>»), например команда:
Дата добавления: 2015-11-23 ; просмотров: 619 | Нарушение авторских прав




