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