Командный интерпретатор command.Com

В операционных системах 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:\Windows\Command.

Для работы с командной строкой в 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 – в корневом, а DOC\123.txt – в подкаталоге DOC текущего каталога.

Существуют особые обозначения для текущего каталога (точка «.») и трех его верхних уровней (две точки «..» - родительский, три «…» - второго уровня и, наконец, четыре «….» - третьего уровня). Например, для текущего каталога C:\Windows\Media\Office97 путь к файлу autoexec.bat в корневом каталоге диска C: может быть записан в виде ….\autoexec.bat.

В именах файлов можно применять шаблоны * (произвольное кол-во любых символов) или ? (один произвольный символ или его отсутствие). Для того, чтобы использовать длинные имена файлов при работе с командной строкой их нужно заключать в двойные кавычки “.

В синтаксисе командной строки особое место занимает перенаправление ввода-вывода с помощью символа «>» на стандартное устройство (PRN, COM1 и т.п) или файл. Например, DIR /? > helpdir.txt выведет справку по команде DIR в файл. Символ «>>» позволяет не создавать файл заново, а дописать в него. По аналогии символ «<» позволяет читать данные не с клавиатуры, а с файла.Например, DATE < date.txtввод новой даты из файла.

Кроме того, командная строка поддерживает конвейеризацию спомощью конструкции: команда1 | команда2, когда сообщения выводимые первой командой используются в качестве входных данных для второй. Например, команда MORE выводит информацию частями, не превышающим размер экрана. Строка TYPE имя_файла | MORE выводит файл по экранам с паузой.

Переменные окружения

При загрузке ОС Windows в оперативной памяти постоянно хранится набор т.н. переменных окружения (environment variables). Хотя в Windows есть более совершенный способ для хранения системных значений – реестр, многие программы по-прежнему используют переменные окружения.

Наиболее важные переменные хранят системный путь для поиска (PATH), каталог запуска Windows (WINDIR), место хранения временных файлов (TEMP).

Переменные устанавливаются с помощью команды

SET [переменная=[строка]]

Запуск SET без параметров приводит к выводу списка переменных среды. Для получения их значений (всегда строки) нужно имя соответствующей переменной заключить в символы «%», например: %TEMP%.

Основные команды

Остановимся подробнее на командах работы с файловой системой: ATTRIB, CD, COPY, XCOPY, DIR, MKDIR, RMDIR, DEL, DELTREE, REN, MOVE, SUBST, VOL, LABEL.

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 (символ <CTRL>+<Z> в конце)
/B файл является двоичным
результат каталог для результата копирования и/или имя создаваемого файла
/V проверка правильности копирования путем сравнения источника и приемника
/Y отключение режима запроса подтверждения на замену файлов
/-Y включение режима запроса подтверждения на замену файлов

Действие ключа /B означает копирование всего файла побайтно, а ключ /A приводит к копированию только данных, предшествующих первому символу конца файла. В качестве источника или результата при копировании можно указывать имена не только файлов, но усиройств компьютера:

· PRN – принтер,

· LPT1-LPT3 – соответствующие параллельные порты;

· AUX – устройство, присоединяемое к последовательному порту 1;

· COM1-COM3 - соответствующие последовательные порты;

· CON – терминал (при вводе – это клавиатура, а при выводе – монитор);

· NUL – пустое устройство (все операции игнорируются).

Например, для печати файла на принтере можно ввести команду COPY abc.txt PRN, для создания файла COPY CON my.txt (для конца файла ввести <CTRL>+<Z>).

Команда 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 – прерывание по <CTRL>+<C>, 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 (так же как и другие) поддерживает перенаправление ввода-вывода (символы «>» и «>>»), например команда:

Наши рекомендации