1.6. Параметры пакетных файлов

advertisement
Консольный режим и пакетные файлы в ОС Windows
1. Основные сведения
1.1. Консольный режим Windows
В ранних операционных системах ПЭВМ главным средством общения
пользователя с системой являлся диалог, основанный на языке команд
операционной системы. Пользователь вводит в текстовом режиме с клавиатуры
команду, системный интерпретатор выполняет ее и выводит результаты на
экран. Работа пользователя в современных операционных системах в основном
протекает с использованием средств многооконного графического интерфейса,
когда основные действия – переключение окон, вызов команд меню, запуск
команд – выполняются с помощью мыши, а клавиатура используется во
вспомогательных целях. Тем не менее, режим текстового диалога сохраняется и
в ряде случаев предоставляет самый простой способ выполнить действия,
которые иначе потребовали бы использования специальных системных утилит.
Использование команд дает также удобную возможность выполнить некоторые
действия сразу над группой файлов с использованием символов шаблона * и ?.
Кроме того, из системных команд могут быть образованы пакетные файлы (в
просторечии BAT-файлы), которые позволяют выполнять достаточно сложные
последовательности действий для заданных аргументов.
Для того чтобы из графического режима перейти в режим текстового
диалога, следует выбрать пункт меню Пуск/Выполнить и набрать имя файла
интерпретатора команд CMD.EXE. Можно также запустить одну из программоболочек текстового режима (например, FAR.EXE), которые сохраняют
возможность вводить команды операционной системы с клавиатуры.
Справочную информацию по любой команде Windows можно получить,
введя соответствующую команду с ключом /?. Кроме того, команда HELP в
Windows, введенная без параметров, выдает список всех команд, а с параметром
– именем команды – информацию по данной команде.
1.2. Структура команды
Команда состоит из имени команды и параметров. Различают внутренние
команды, которые выполняются самим интерпретатором, и внешние команды,
которые представляют собой программы, расположенные в системном каталоге
и ничем другим не отличающиеся от прочих программ.
Если интерпретатор команд не опознает команду как внутреннюю и не
может найти ее имя среди выполняемых файлов в системных каталогах, он
считает, что введено имя прикладной программы, которую следует запустить.
Если перед именем программы не указан путь, то интерпретатор ищет
программу в текущем каталоге (папке), в системных каталогах, а также в тех
каталогах, пути к которым содержатся в системной переменной PATH.
Заглавные и строчные буквы не различаются при поиске файла.
Если имя файла или каталога содержит пробелы или другие специальные
символы,
то
его
следует
заключать
в
кавычки,
например,
"C:\Program Files\Far\Far.exe".
Среди параметров команд чаще всего встречаются имена файлов,
подлежащих обработке, и ключи, уточняющие режим выполнения команды.
Ключ чаще всего представляет собой букву, перед которой обычно ставится
символ “/”. Параметры отделяются друг от друга пробелами.
Особую роль играют параметры перенаправления стандартных вывода и
ввода: “>”, “>>” и “<”. Перенаправление стандартного вывода с помощью знака
“>” означает, что те результаты работы команды или прикладной программы,
которые обычно выводятся на экран монитора, должны направляться в тот файл
или на то устройство, имя которого указано сразу после знака “>”. Из имен
устройств чаще всего используется PRN – системный принтер или NUL –
пустое устройство, которое означает, что результаты не должны никуда
выводиться.
В качестве примера рассмотрим перенаправление стандартного вывода
команды DIR. Обычно эта команда выводит на экран содержимое каталога,
однако если команда задана в форме “DIR >PRN”, то это содержимое будет
выдано на принтер, а в форме “DIR >DIRFILE.TXT” – в файл DIRFILE.TXT.
Параметр “>>” действует почти так же, как “>”, но при выводе в
существовавший ранее файл знак “>” означает, что прежнее содержимое файла
следует стереть, а знак “>>” – что новые данные должны добавляться в конец
файла. Это позволяет накапливать в одном файле результаты выполнения
нескольких команд. Параметр перенаправления стандартного ввода “<”
используется в тех случаях, когда команда или программа, обычно
принимающая данные с клавиатуры, должна взять их из указанного файла.
Парамеры перенаправления можно записывать в любом месте командной
строки, но обычно их указывают в конце строки.
В некоторых случаях бывает удобно объединить вызовы двух или более
команд в так называемый конвейер. Это возможно, если первая команда выдает
данные на стандартный вывод, а вторая – принимает данные для обработки со
стандартного ввода. В этом случае запись в одной строке двух команд,
разделенных символом “|”, означает, что стандартный вывод первой команды
будет сохранен во временном файле и затем использован в качестве
стандартного ввода второй команды. Например, если команда “TYPE A.TXT”
выводит
на
экран
длинный
текстовый
файл,
то
конвейер
“TYPE A.TXT | MORE” будет выдавать этот файл порциями, умещающимися
на экране (см. описание команды MORE).
Если пользователь хочет в качестве параметра команды указать группу из
нескольких файлов (которые нужно, например, скопировать на дискету или
удалить), то он может использовать символы шаблона “*” и “?”. При этом
символ “*” означает «любое количество любых символов, а может и ни
одного», в то время как “?” означает «любой один символ». Таким образом,
команда “DEL *.TMP” означает удаление всех файлов, имя которых
заканчивается на “.TMP”.
В Windows NT имеется также возможность опускать имя запускаемой
программы, указывая вместо этого имя файла, подлежащего обработке. Для
этого следует предварительно установить ассоциацию между расширением
имени файла и программой, которая должна вызываться для его обработки.
В приведенном ниже описании конкретных команд квадратные скобки
“[…]” означают необязательные параметры команды, которые могут быть
опущены. Сами квадратные скобки не используются при вводе команд.
1.3. Переменные среды
Каждая команда и программа, начиная с самого интерпретатора команд,
получает при своем запуске от операционной системы в качестве как бы
дополнительного
неявного
параметра
область
памяти,
называемую средой илиокружением программы. Среда состоит из набора
текстовых строк вида «переменная=значение». Здесь переменная должна
состоять из букв и цифр, а значение – строка из любых символов, кроме
нескольких специальных. Любая программа может запросить значения
переменных своей среды и использовать эти значения в своей работе.
Имеется несколько стандартных системных переменных среды, которые
всегда задаются при загрузке системы. К ним относятся:
COMSPEC – задает путь к каталогу, в котором находится файл
интерпретатора команд CMD.EXE. Эта переменная используется системой при
возврате в интерпретатор после завершения работы программы.
PROMPT – определяет вид строки приглашения к вводу следующей
команды, выдаваемого интерпретатором.
PATH – содержит перечисление путей ко всем каталогам, в которых
интерпретатор будет искать файл запускаемой программы, если задано только
имя файла без указания пути.
Дополнительные переменные среды могут потребоваться для правильной
работы различных прикладных программ. Пользователь вправе задавать
переменные среды с любыми именами и использовать их по своему
усмотрению для управления работой своих программ.
Для изменения системных переменных PATH и PROMPT предусмотрены
одноименные команды. В общем случае для просмотра и изменения любых
переменных среды может использоваться команда SET.
1.4. Некоторые команды консольного режима
Ниже приведен неполный список команд консольного режима с кратким
описанием их параметров и назначения, полученный с помощью
команды HELP Windows NT. Большая часть этих команд действительны и
дляWindows 95/98, некоторые же команды, или некоторые ключи команд, имеют
смысл только в NT.
Просмотр и изменение сопоставлений файлов.
ASSOC [.рсш[=[типФайла]]]
рсш
Расширение имени файла, сопоставляемое типу файлов
Тип
Тип файлов, сопоставляемый расширению имени файлов
Файла
Команда ASSOC без параметров выводит список сопоставлений типов
файлов. Если указано только расширение имени файла, выводится
сопоставленный тип файлов для расширения. Если после знака равенства не
указан тип файлов, команда удалит текущее сопоставление для указанного
расширения.
Вывод и изменение атрибутов файлов
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[диск:] [путь] имя_файла]
[/S]
+ Установка атрибута
- Снятие атрибута.
R Атрибут "Только чтение"
A Атрибут "Архивный".
S Атрибут "Системный"
H Атрибут "Скрытый"
/S Обработка файлов с указанными именами в текущем каталоге и во всех
его подкаталогах
Вывод имени либо смена текущего каталога
CHDIR [/D] [диск:][путь]
CD [/D] [диск:][путь]
Команда CD диск: отображает имя текущего каталога указанного диска.
Команда CD без параметров отображает имена текущих диска и каталога.
Параметр /D используется для одновременной смены текущих диска и
каталога.
Очистка экрана.
CLS
Запуск новой копии интерпретатора команд
для Windows NT
CMD [/X | /Y] [/Q] [[/C | /K] строка]
/C
Выполнение указанной команды (строки) с последующим
завершением.
/K
Выполнение указанной команды (строки) без последующего
завершения.
/Q
Отключение режима вывода команд на экран (ECHO).
/T:цв Выбор цвета текста/фона (более подробно см. COLOR /?)
/X
Включение расширенной обработки команд версии CMD.EXE
Windows
/Y
Отключение расширенной обработки команд версии CMD.EXE
Windows
Чтобы указать в одной строке несколько команд, разделите их символами
'&&' и заключите в кавычки
COLOR [цвета]
Цвета
Атрибуты цветов для текстовых окон
Атрибуты цветов задаются в виде ДВУХ шестнадцатеричных цифр –
первая задает цвет фона, а вторая определяет цвет текста. Каждая цифра может
иметь следующие значения:
0 = Черный
4 = Красный
8 = Серый
C
=
Светлокрасный
1 = Синий
5 = Лиловый
9 = Светло-синий
D
=
Светлолиловый
2 = Зеленый
6 = Желтый
A = Светло-зеленый
E
=
Светложелтый
3 = Голубой
7 = Белый
B = Светло-голубой
F = Ярко-белый
Если аргумент не указан, команда восстанавливает исходный выбор
цветов, каким он был на момент запуска CMD.EXE. Это значение извлекается
из текущего текстового окна, из значения ключа /T или из значения параметра
реестра DefaultColor.
Пример: "COLOR fc" задает светло-красный текст на ярко-белом фоне
Сравнение содержимого двух файлов или наборов файлов.
COMP [данные1] [данные2] [/D] [/A] [/L] [/N=число] [/C]
данные1 Первый файл или набор файлов для сравнения.
данные2 Второй файл или набор файлов для сравнения.
/D
Вывод различий в десятичном формате (этот режим используется
по умолчанию).
/A
Вывод различий в формате ASCII.
/L
Вывод номеров строк, в которых обнаружены различия.
/N=числ Число первых строк в каждом файле, которые следует сравнить.
о
/C
Сравнение файлов без учета регистра букв ASCII.
Для описания наборов файлов используйте подстановочные знаки. Для
сравнения текстовых файлов удобнее использовать команду FC.
Копирование одного или нескольких файлов в другое место
COPY [/A | /B] источник [/A | /B] [+ источник [/A | /B] [+ ...]] [результат
[/A | /B]] [/V] [/N]
источник Имена одного или нескольких копируемых файлов.
/A
Файл является текстовым файлом ASCII.
/B
Файл является двоичным файлом.
результат Каталог и/или имя для конечных файлов.
/V
Проверка правильности копирования файлов.
Чтобы объединить файлы, укажите один конечный и несколько исходных
файлов,
используя
подстановочные
знаки
или
формат
"файл1+файл2+файл3+...".
Вывод или изменение даты
DATE [дата]
Команда DATE без параметров отображает текущую дату и запрашивает
ввод новой даты. Для сохранения текущей даты нажмите клавишу ENTER.
Удаление одного или нескольких файлов
DEL [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] [диск:] [путь] [имя_файла]
ERASE [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] [[диск:] [путь] имя_файла
[диск:][путь]
Диск, каталог и/или файлы, которые следует удалить.
[имя_файла]
/P
Запрос на подтверждение перед удалением каждого
файла.
/F
Принудительное удаление файлов, доступных только
для чтения.
/S
Удаление указанных файлов из всех подкаталогов.
/Q
Отключение запроса на подтверждение при удалении
файлов.
/A
Отбор файлов для удаления по атрибутам.
S Системные файлы
R Доступные только для чтения
H Скрытые файлы
A Файлы для архивирования
Префикс "-" имеет значение НЕ
Изменение команд DEL и ERASE при включении расширенной обработки
команд:
Результаты вывода для ключа /S принимают обратный характер, то есть
выводятся только имена удаленных файлов, а не файлов, которые не удалось
найти.
Вывод списка файлов и подкаталогов из указанного каталога
DIR [диск:][путь][имя_файла] [/P] [/W] [/D] [/A[[:] атрибуты]]
[/O[[:]порядок]] [/T[[:]время]] [/S] [/B] [/L] [/N] [/X] [/C]
[диск:]_
Диск, каталог и/или файлы, которые следует включить в
[путь]_
список.
[имя_файла]
/P
Пауза после заполнения каждого экрана.
/W
Вывод списка в несколько столбцов.
/D
Вывод списка в несколько столбцов с сортировкой по столбцам.
/A
Вывод файлов с указанными атрибутами.
D - Каталоги
R - Доступные только для чтения файлы
A - Файлы для H - Скрытые файлы
архивирования
S - Системные Префикс "-" имеет значение НЕ
/O
/T
/S
/B
/L
/N
/X
/C
файлы
Сортировка списка отображаемых файлов.
N
По
имени G - Начать список с каталогов
(алфавитная)
S - По размеру (сперва E - По расширению (алфавитная)
меньшие)
D - По дате (сперва Префикс "-" обращает порядок
более старые)
Выбор поля времени для отображения и сортировки
C - Создание
A - Последнее использование
W - Последнее изменение
Вывод списка файлов из указанного каталога и его подкаталогов.
Вывод только имен файлов.
Использование нижнего регистра для имен файлов.
Отображение имен файлов в крайнем правом столбце.
Отображение коротких имен для файлов, чьи имена не
соответствуют стандарту 8.3. Формат аналогичен выводу с ключом
/N, но короткие имена файлов выводятся слева от длинных. Если
короткого имени у файла нет, вместо него выводятся пробелы.
Применение разделителя групп разрядов для вывода размеров
файлов.
Стандартный набор ключей можно записать в переменную среды
DIRCMD. Для отмены их действия введите в команде те же ключи с префиксом
"-", например: /-W.
Копирование содержимого одного гибкого диска на другой
DISKCOPY [диск1: [диск2:]] [/V]
/V - Копирование с проверкой правильности переноса данных.
Оба диска должны иметь одинаковый тип. Параметры диск1 и диск2
могут ссылаться на одно и то же устройство.
Редактирование и повторный вызов команд Windows; создание макросов
DOSKey
DOSKEY [/REINSTALL] [/LISTSIZE=размер] [/MACROS[:ALL | :модуль]]
[/HISTORY]
[/INSERT
|
/OVERSTRIKE]
[/EXENAME=модуль]
[/MACROFILE=файл]
[макрос=[текст]]
/REINSTALL
Установка новой копии DOSKey.
/LISTSIZE=разм Размер буфера журнала команд.
ер
/MACROS
Вывод всех макросов DOSKey.
/MACROS:ALL Вывод всех макросов DOSKey для всех исполняемых
модулей, содержащих макросы DOSKey.
/MACROS:моду Вывод всех макросов DOSKey для указанного модуля.
ль
/HISTORY
Вывод всех команд, хранящихся в памяти.
/INSERT
Включение режима вставки.
/OVERSTRIKE Включение режима замены.
/EXENAME=мо Исполняемый модуль.
дуль
/MACROFILE= Файл макросов, который следует установить.
файл
Макрос
Имя нового макроса.
текст
Команды, которые следует включить в макрос.
Стрелки ВВЕРХ и ВНИЗ: повторный вызов команд; ESC: очистка
командной строки; F7: вывод журнала команд; ALT+F7: очистка журнала
команд; F8: поиск команд в журнале; F9: выбор команды по номеру; ALT+F10:
очистка макросов.
Специальные коды, которые можно использовать в макросах DOSKey:
$T - Разделитель команд: обеспечивает ввод нескольких команд в одной
строке.
$1-$9 - Параметры - эквиваленты параметров %1-%9 в пакетных файлах.
$* - Заменяется текстом, стоящим в командной строке за именем макроса.
Вывод сообщений и переключение режима отображения команд на экране
ECHO [ON | OFF]
ECHO [сообщение]
Введите ECHO без параметра для определения текущего значения этой
команды.
Завершение работы интерпретатора команд
EXIT
Сравнение двух файлов или двух наборов файлов и вывод различий между ними
FC [/A] [/C] [/L] [/LBn] [/N] [/T] [/U] [/W] [/nnnn]
[диск1:][путь1]имя_файла1 [диск2:][путь2] имя_файла2
FC /B [диск1:][путь1]имя_ф1 [диск2:] [путь2] имя_ф2
/A
/B
/C
/L
/LBn
/N
/T
Вывод только первой и последней строк для каждой группы
различий.
Сравнение двоичных файлов.
Сравнение без учета регистра символов.
Сравнение файлов в формате ASCII.
Максимальное число несоответствий для заданного числа строк.
Вывод номеров строк при сравнении текстовых файлов ASCII.
Символы табуляции не заменяются эквивалентным числом
/U
/W
/nnnn
пробелов.
Сравнение файлов в формате UNICODE.
Пропуск пробелов и символов табуляции при сравнении.
Число последовательных совпадающих строк, которое должно
встретиться после группы несовпадающих.
Поиск текстовой строки в одном или нескольких файлах
FIND [/V] [/C] [/N] [/I] "строка" [[диск:] [путь] имя_файла[ ...]]
/V
Вывод всех строк, НЕ содержащих заданную строку.
/C
Вывод только общего числа строк, содержащих заданную
строку.
/N
Вывод номеров отображаемых строк.
/I
Поиск без учета регистра символов.
"строка"
Искомая строка.
[диск:]
Один или несколько файлов, в которых выполняется поиск.
[путь]
имя_файла
Если путь не задан, поиск выполняется в стандартном вводе команды.
Поиск строк в файлах. (только для Windows NT)
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/F:файл]
[/C:строка] [/G:файл] [строки] [[диск:] [путь] имя_файла[ ...]]
/B
/E
/L
/R
/S
/I
/X
/V
/N
/M
/O
/P
/F:файл
/C:строка
Поиск строк, начинающихся с искомых строк.
Поиск строк, оканчивающихся искомыми строками.
Строки поиска следует воспринимать буквально.
Строки поиска являются выражениями.
Просмотр всех файлов с указанными именами,
расположенных в текущем каталоге и во всех его
подкаталогах.
Выполнение поиска без учета регистра букв.
Вывод строк, полностью совпадающих с искомыми
строками.
Вывод только строк, не содержащих искомые строки.
Вывод номеров строк.
Вывод только имен файлов, содержащих искомые строки.
Вывод числа символов в файле перед искомой строкой.
Пропуск файлов, содержащих непечатаемые символы.
Ввод списка файлов из указанного файла (/ - с клавиатуры).
Данную строку поиска следует воспринимать буквально.
/G:файл
Ввод строк поиска из указанного файла (/ - с клавиатуры).
Строки
Искомые строки.
[диск:]
Один или несколько файлов, в которых выполняется поиск.
[путь]
имя_файла
В отсутствие ключа /C используйте пробелы для разделения строк поиска.
Например, 'FINDSTR "добрый день" x.y' выполнит поиск двух строк - "добрый"
и "день" - в файле x.y, а 'FINDSTR /C:"добрый день" x.y' выполнит поиск одной
строки "добрый день" в файле x.y.
Форматирование диска для работы с Windows
FORMAT диск: [/FS:система] [/V:метка] [/Q] [/A:размер] [/C]
FORMAT диск: [/V:метка] [/Q] [/F:размер]
FORMAT диск: [/V:метка] [/Q] [/T:дорожки /N:секторы]
FORMAT диск: [/V:метка] [/Q] [/1] [/4]
FORMAT диск: [/Q] [/1] [/4] [/8]
/FS:система
/V:метка
/Q
/C
/A:размер
/F:размер
/T:дорожки
/N:секторы
/1
/4
/8
Тип файловой системы: FAT или NTFS.
Метка тома.
Быстрое форматирование.
Установка режима сжатия по умолчанию для всех файлов,
создаваемых на новом томе.
Переопределение заданного по умолчанию размера кластера.
Изменять это значение следует только в особых случаях.
Емкость форматируемого гибкого диска: 160, 180, 320, 360,
720, 1.2, 1.44, 2.88 или 20.8.
Число дорожек на каждой стороне диска.
Число секторов на каждой дорожке.
Форматирование одной стороны гибкого диска.
Форматирование 5,25" дискеты емкостью 360 КБ в
дисководе высокой плотности.
Создание восьми секторов на каждой дорожке.
Просмотр и изменение типов файлов, сопоставленных с расширением имен
файлов
(только для Windows NT)
FTYPE [типФайлов[=[команднаяСтрокаОткрытия]]]
Тип
Тип файлов для просмотра или изменения
Командная
Команда открытия для использования при запуске файлов
Строка
указанного типа.
Открытия
Команда FTYPE без параметров выводит список типов файлов, для
которых определены командные строки открытия. Если указан только тип
файла, FTYPE выводит командную строку открытия для этого типа
файлов. Если после знака равенства не указана строка открытия, FTYPE удалит
текущее сопоставление для указанного типа файлов. При вызове переменные
командной строки переменные %0 и %1 заменяются на имя файла,
запускаемого с помощью сопоставления. Вместо переменной %*
подставляются все параметры, а переменные %2, %3 и т.д. заменяются,
соответственно, на первый, второй и другие параметры. Вместо переменной
%~n подставляются все оставшиеся параметры, начиная с n, где n является
числом от 2 до 9. Например:
ASSOC .pl=PerlScript
FTYPE PerlScript=perl.exe %1 %*
Эти команды позволят вызывать обработчик команд Perl следующим
образом:
script.pl 1 2 3
Если желательно избежать постоянного ввода расширения имен файлов,
введите следующую команду:
set PATHEXT=.pl;%PATHEXT%
Теперь обработчик команд вызывается еще проще:
script 1 2 3
Вывод справочных сведений о командах Windows NT
(только для Windows NT)
HELP [команда]
команда - Команда, интересующая пользователя.
Создание, изменение и удаление меток тома для дисков
LABEL [диск:][метка]
Создание каталога
MKDIR [диск:]путь
MD [диск:]путь
Последовательный вывод данных по частям размером в один экран
MORE /E [/C] [/P] [/S] [/Tn] [+n] [файлы]
/E
Разрешение использования дополнительных возможностей.
/C
Очистка экрана перед выводом каждой страницы.
/P
Учет символов перевода страницы.
/S
Сжатие нескольких пустых строк в одну строку.
/Tn
Замена символов табуляции n пробелами (по умолчанию n = 8).
+n
Начало вывода первого файла со строки с номером n.
Файлы Список отображаемых файлов. Для разделения имен файлов в
списке используйте пробелы.
Если не указаны файлы, команда берет данные со стандартного ввода.
Перемещение одного или нескольких файлов из одного каталога в другой
MOVE [источник] [результат]
Источник - Путь к перемещаемым файлам и их имена.
результат - Путь к конечным файлам и их имена.
Вывод или задание пути поиска исполняемых файлов
PATH [[диск:]путь[;...][;%PATH%]
PATH;
Команда PATH; очищает путь поиска используемых файлов, ограничив
его текущим каталогом.
Команда PATH без параметров отображает текущий путь поиска. При
включении в командную строку переменной %PATH% прежний путь поиска
добавляется в конец нового.
Печать текстового файла
PRINT [/D:устройство] [[диск:][путь]имя_файла[...]]
/D:устройство Устройство для печати.
Изменение приглашения командной строки
PROMPT [текст]
текст - Новое приглашение командной строки.
Приглашение может включать обычные символы и следующие коды:
$A & (амперсанд)
$B | (вертикальная черта)
$C ( (левая круглая скобка)
$D Текущая дата
$E ESC (символ ASCII с кодом 27)
$F ) (правая круглая скобка)
$G > (знак "больше")
$H BACKSPACE (удаление предыдущего символа)
$L < (знак "меньше")
$N Текущий диск
$P Текущие диск и каталог
$Q = (знак равенства)
$S (пробел)
$T Текущее время
$V Номер версии Windows NT
$_ Возврат каретки и перевод строки
$$ $ (символ доллара)
Удаление каталога
RMDIR [/S] [/Q] [диск:]путь
RD [/S] [/Q] [диск:]путь
/S - Удаление дерева каталогов, т. е. не только указанного каталога, но и
всех содержащихся в нем файлов и подкаталогов.
/Q - Отключение запроса подтверждения при удалении дерева каталогов с
помощью ключа /S.
Переименование одного или нескольких файлов
RENAME [диск:][путь]имя_файла1 имя_файла2.
REN [диск:][путь]имя_файла1 имя_файла2.
Для конечного файла нельзя указать другой диск или каталог.
Замена файлов. (только для Windows NT)
REPLACE [диск1:][путь1]имя_файла [диск2:][путь2] [/A] [/P] [/R] [/W]
REPLACE [диск1:][путь1]имя_файла [диск2:][путь2] [/P] [/R] [/S] [/W]
[/U]
[диск1:]
Один или несколько исходных файлов.
[путь1]
имя_файла
[диск2:]
Каталог, в котором следует заменить файлы.
[путь2]
/A
Добавление новых файлов в конечный каталог. Этот ключ
несовместим с ключами /S и /U.
/P
Вывод запроса перед заменой или добавлением файла.
/R
Разрешение замены файлов, предназначенных только для
чтения (среди прочих).
/S
Замена файлов во всех подкаталогах конечного каталога. Этот
ключ несовместим с ключом /A.
/W
Ожидание вставки диска перед началом выполнения.
/U
Замена только файлов, более старых, чем исходные. Этот ключ
несовместим с ключом /A.
Вывод, задание и удаление переменных среды
SET [переменная=[строка]]
переменная - Имя переменной среды.
строка - Строка символов, присваиваемая указанной переменной.
Введите SET без параметров для вывода текущих переменных среды.
Сортировка ввода с выводом результатов
SORT [/R] [/+n]
/R
Изменение порядка сортировки на обратный, от Z к A и затем от 9 до 0.
/+n
Сортировка файла по символам в столбце n.
Команда вводит данные со стандартного ввода, сортирует строки и
записывает результат на стандартный вывод. Можно использовать
перенаправление стандартных ввода и вывода или конвейер.
Запуск указанной программы или команды в отдельном окне
START ["загол."] [/Dпуть] [/MIN] [/MAX] [/LOW | /NORMAL | /HIGH |
/REALTIME] [/WAIT] [команда/программа] [параметры]
"загол."
Заголовок окна.
Путь
Рабочий каталог.
Запуск команды/программы в свернутом окне.
Запуск команды/программы в развернутом окне.
Запуск приложения с приоритетом IDLE.
Запуск приложения с приоритетом NORMAL.
Запуск приложения с приоритетом HIGH.
Запуск приложения с приоритетом REALTIME.
Запуск приложения с ожиданием его завершения.
Если это внутренняя команда cmd.exe или пакетный файл,
обработчик команд (cmd.exe) запускается с ключом /K. Это
означает, что окно не будет закрыто после завершения команды.
Если это не внутренняя команда cmd.exe и не пакетный файл,
то это программа, которая будет запущена в графическом или
текстовом окне.
Параметры Параметры, передаваемые команде/программе.
Сопоставление имени диска указанному пути
SUBST [диск1: [диск2:]путь]
SUBST диск1: /D
диск1: - Виртуальный диск, который сопоставляется указанному пути.
[диск:]путь - Физические диск и путь, которым сопоставляется
виртуальный диск.
/D - Удаление ранее созданного виртуального диска.
Введите SUBST без параметров для вывода текущего списка виртуальных
дисков.
Вывод или изменение времени
TIME [время]
Введите TIME без параметров для вывода текущего времени и запроса на
ввод нового времени. Нажмите клавишу ENTER для сохранения текущего
времени.
Запуск команд в указанное время
AT [\\имя_компьютера] [ [код] [/DELETE] | /DELETE [/YES]]
AT [\\имя_компьютера] время [/INTERACTIVE]
[ /EVERY:день[,...] | /NEXT:день[,...]] "команда"
Команда AT предназначена для запуска команд и программ в указанное
время по определенным дням. Для использования команды AT необходимо,
чтобы была запущена служба расписаний.
Работа с запланированными заданиями
SCHTASKS /параметр [аргументы]
MIN
MAX
LOW
NORMAL
HIGH
REALTIME
WAIT
команда/
программа
Описание:
Позволяет администратору создавать, удалять, изменять и опрашивать
запланированные задачи в локальной или удаленной системе. Заменяет AT.exe.
Завершение работы процесса
TASKKILL [/S <система> [/U <пользователь> [/P [<пароль>]]]]
{ [/FI <фильтр>] [/PID <процесс> | /IM <образ>] } [/F] [/T]
Эта команда позволяет завершить один или несколько процессов. Процесс
может быть завершен по имени образа или по идентификатору процесса.
Вывод всех процессов
TASKLIST [/S <система> [/U <имя пользователя> [/P [<пароль>]]]]
[/M [<модуль>] | /SVC | /V] [/FI <фильтр>] [/FO <формат>] [/NH]
Описание:
Отображает список приложений и связанные с ними задачи/процессы, которые
исполняются в текущий момент на локальном или удаленном компьютере.
Вывод содержимого одного или нескольких текстовых файлов
TYPE [диск:][путь]имя_файла
Вывод версии Windows
VER
Вывод метки и серийного номера тома для диска
VOL [диск:]
Копирование файлов и структур каталогов
XCOPY источник [результат] [/A | /M] [/D[:дата]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U] [/K] [/N] [/Z]
Источник
Результат
/A
/M
/D:дата
/P
/S
/E
/W
/C
/I
/Q
/F
/L
/H
/R
/U
Копируемые файлы.
Местоположение и/или имена новых файлов.
Копирование файлов с установленным архивным атрибутом.
Сам атрибут при этом не изменяется.
Копирование файлов с установленным архивным атрибутом.
После копирования атрибут снимается.
Копирование файлов, измененных не ранее указанной даты.
Если дата не указана, заменяются только конечные файлы,
более старые, чем исходные.
Вывод запросов перед созданием каждого нового файла.
Копирование каталогов с подкаталогами (кроме пустых).
Копирование каталогов с подкаталогами (в том числе пустых).
Вывод запроса на нажатие клавиши перед копированием.
Продолжение копирования, независимо от наличия ошибок.
Если результат не существует, а копируется несколько файлов,
считается, что указано имя каталога.
Запрет вывода имен копируемых файлов.
Вывод полных имен исходных и конечных файлов.
Вывод имен копируемых файлов.
Копирование скрытых и системных файлов (среди прочих).
Разрешение замены файлов, предназначенных только для
чтения.
Копирование только файлов, уже имеющихся в конечном
каталоге.
/K
Копирование атрибута "Только чтение" (обычно он
сбрасывается).
/N
Использование коротких имен при копировании.
1.5. Назначение и возможности пакетных файлов
Пакетный файл в Windows представляет собой текстовый файл,
содержащий последовательность команд консольного режима (включая
команды запуска любых прикладных программ). Стандартное расширение
имени для пакетных файлов – .BAT. Пакетные файлы относятся к числу
выполняемых файлов, т.е. пользователь может ввести имя пакетного файла в
качестве как бы дополнительной команды консольного режима. При этом
система начнет последовательно выполнять команды, записанные в этот файл.
Таким образом, пакетный файл можно рассматривать как средство для
запоминания стандартных последовательностей команд, избавляющее от
необходимости многократно выполнять ввод команд с клавиатуры.
Windows позволяет использовать в пакетных файлах ряд дополнительных
конструкций (параметры, метки, условные переходы), существенно
расширяющих возможности применения этих файлов. В ряде случаев удается
путем комбинирования в пакетном файле вызовов существующих программ
добиться эффекта, ради которого иначе пришлось бы писать специальную
программу. Таким образом, пакетные файлы могут играть роль своеобразного
языка программирования, основными конструкциями которого являются
вызовы программ и управление порядком этих вызовов.
1.6. Параметры пакетных файлов
В пакетных файлах могут использоваться различные параметры,
играющие в «языке пакетных файлов» роль, подобную роли переменных в
обычном языке программирования. Следует отметить, что значениями
параметров могут быть только текстовые строки.
Позиционные параметры
Позиционные параметры %0, %1, ... %9 аналогичны формальным
параметрам процедуры. При запуске пакетного файла параметр %0 замещается
спецификацией самого запускаемого файла, как она задана в командной строке
(т.е. с указанием диска и пути либо без таковых). Остальные параметры в
порядке их номеров замещаются параметрами вызова пакетного файла, т.е.
остальными частями командной строки с учетом разделителей (пробелов,
запятых, точек с запятой и знаков равенства) и за вычетом параметров
перенаправления. Последние несколько позиционных параметров могут при
этом остаться пустыми. Параметры перенаправления переназначают
стандартные ввод и вывод для пакетного файла, сами же из пакетного файла
недоступны.
Пример. Пусть имеется команда запуска пакетного файла:
\MYDIR\BATCH1 F1.TXT>PRN,/F=25, DD E/E
При этом стандартный вывод для этой команды будет направлен на PRN,
а позиционные параметры примут следующие значения:
%0=\MYDIR\BATCH1 %1=F1.TXT %2=/F %3=25 %4=DD %5=E/E
Использование переменных среды в пакетных файлах
Переменные среды – это имена, использованные в левой части строк
среды программы. Внутри пакетного файла можно устанавливать значения этих
переменных с помощью обычной команды «SET переменная=значение», можно
использовать в командных строках пакетного файла переменные, значение
которых либо было установлено ранее в этом же пакетном файле, либо было
задано в текущей среде еще до запуска пакетного файла. Чтобы использовать
значение переменной среды, следует указать ее имя со знаками «%» справа и
слева (%переменная%).
Если продолжить аналогию с процедурами, переменные среды играют
для пакетного файла роль глобальных переменных, областью памяти для
которых служит текущая среда.
Все переменные среды являются строковыми. Только при использовании
расширенной обработки команд в Windows NT появляется возможность
использовать арифметические и логические операции над значениями
переменных (см. команду SET).
При запуске пакетного файла система создает новую среду, которая
содержит копии всех переменных текущей среды. После окончания работы
пакетного файла восстанавливается прежняя среда, поэтому переменные среды
не сохраняют те значения, которые они получили в ходе выполнения пакетного
файла.
При выполнении пакетного файла указанные в его строках имена
позиционных параметров и переменных среды заменяются их строковыми
значениями (возможно, пустыми), после чего полученная строка выполняется
как обычная команда консольного режима.
Пример. Пусть пользователь хочет написать пакетный файл для «мягкого»
удаления ненужных файлов. Такой файл должен выполнять перенос указанного
файла в специальный каталог, играющий роль «персональной корзины»,
аналогичной обычной корзине Windows. Пользователь впоследствии может
либо вернуть файл в исходный каталог, либо действительно удалить его.
Соответствующий файл SOFTDEL.BAT может содержать строки:
COPY %1 %MYDELDIR%
w:st="on"class="af4" style="font-family: 'Courier New'; font-weight: bold;
"DEL
%1
Пусть пользователь выполнил команды:
SET MYDELDIR=C:\DELETED
SOFTDEL *.OBJ
После подстановки
параметров %1 = *.OBJ и %MYDELDIR% = C:\DELETED будут фактически
выполнены команды:
COPY *.OBJ C:\DELETED
w:st="on"class="af4" style="font-family: 'Courier New'; font-weight: bold;
"DEL
*.OBJ
Если используется оболочка типа Norton Commander, то
команду SET следовало включить в стартовый файл AUTOEXEC.BAT,
выполнив ее до загрузки оболочки.
Параметр ERRORLEVEL
Любая программа для Windows при завершении своего выполнения
передает операционной системе целочисленной значение, которое называется
кодом завершения программы. По умолчанию код завершения равен 0, и это
значение принято считать признаком нормального завершения, т.е. отсутствия
каких-либо «нештатных ситуаций» при работе программы. Пользователь может
предусмотреть выдачу любых значений кода завершения, при этом ненулевые
коды завершения обычно означают, что в ходе работы программы произошли
какие-то неприятности (например, не найден входной файл, неверный формат
обрабатываемых данных и т.п.).
Если программа была запущена в диалоговом режиме, то значение кода ее
завершения никак не используется, теряется. Если же программа запускалась из
пакетного файла, то можно проверить значение кода завершения при помощи
оператора IF ERRORLEVEL, формат которого описан ниже. Такая проверка
позволяет разветвить ход дальнейшего выполнения пакетного файла в
зависимости от кода завершения программы.
Оригинальное и очень полезное применение кода завершения связано с
использованием команды CHOICE. Программа, вызываемая по этой команде,
задает пользователю некоторый вопрос и предлагает на выбор нажать одну из
нескольких клавиш в качестве ответа. После нажатия клавиши программа
завершается, а код ее завершения указывает, какой из предложенных ответов
был выбран пользователем. Таким образом достигается возможность выбрать
один из нескольких путей дальнейшего выполнения пакетного файла по выбору
пользователя.
1.7. Команды для пакетных файлов
В данном подразделе описаны команды консольного режима, которые
обычно применяются только в составе пакетных файлов. Их использование в
диалоге не запрещено, но, как правило, не имеет смысла.
Вызов одного пакетного файла из другого
CALL [диск:][путь]имя_файла [параметры]
параметры - Набор параметров командной строки, необходимых
пакетному файлу.
Изменение команды CALL при включении расширенной обработки
команд:
Команда CALL допускает использование меток в качестве адресата
вызова.
Применяется следующий синтаксис:
CALL :метка аргументы
При вызове создается новый контекст текущего пакетного файла с
заданными аргументами, и управление передается на инструкцию,
расположенную сразу после метки. Для выхода из такого пакетного файла
необходимо два раза достичь его конца. Первый выход возвращает управление
на инструкцию, расположенную сразу после строки CALL, а второй выход
завершает выполнение пакетного файла.
Команда GOTO /? выводит описание расширения GOTO :EOF,
позволяющее выполнить быстрый возврат из пакетного файла.
Кроме того, раскрытие ссылок на аргументы пакетных файлов (%0, %1 и
т.д.) изменено следующим образом: %* в пакетном файле обозначает все
аргументы (например, %1 %2 %3 %4 %5 ).
Операции подстановки параметров пакетного файла (%n) также
расширены.
Допускается применение следующих синтаксических конструкций:
%~f1
переменная %1 расширяется до полного имени файла
%~d1
из переменной %1 выделяется только имя диска
%~p1
из переменной %1 выделяется только путь к файлу
%~n1
из переменной %1 выделяется только имя файла
%~x1
из переменной %1 выделяется расширение имени файла
%~s1
значение параметров n и x изменяется так, что они работают с
кратким именем файла
%~$PATH:1 проводится поиск по каталогам, заданным в переменной среды
PATH, и переменная %1 заменяется на полное имя первого
найденного файла. Если переменная PATH не определена или в
результате поиска не найден ни один файл, эта конструкция
заменяется на пустую строку
Ввод ответа пользователя с клавиатуры
Ожидает ответа пользователя.
CHOICE [/C[:]варианты] [/N] [/S] [/T[:]c,nn] [текст]
/C[:]варианты Варианты ответа пользователя.
По умолчанию строка включает два варианта: YN
/N
Ни сами варианты, ни знак вопроса в строке приглашения не
отображаются.
/S
Учитывать регистр символов.
/T[:]c,nn
Ответ "c" выбирается автоматически после nn секунд
ожидания
Текст
Строка приглашения
После выполнения команды переменная ERRORLEVEL приобретает
значение, равное номеру выбранного варианта ответа.
Вывод сообщений и переключение режима отображения команд на экране
ECHO [ON | OFF]
ECHO [сообщение]
Введите ECHO без параметра для определения текущего значения этой
команды. Другой способ отмены отображения выполняемых команд использование символа "@" в первой позиции строки. Этот символ отменяет
отображение данной строки. Таким образом, команда "@ECHO OFF" не
отображается сама и отменяет отображение следующих за ней команд.
Выполнение указанной команды для каждого файла набора
FOR %переменная IN (набор) DO команда [параметры]
%переменная
Подставляемый параметр.
Набор, состоящий из одного или нескольких файлов.
(набор)
Допускается использование подстановочных знаков.
Команда
Команда, которую следует выполнить для каждого файла.
Параметры
Параметры и ключи для указанной команды.
В пакетных файлах для команды FOR используется запись
%%переменная вместо %переменная. Имена переменных учитывают регистр
букв (%i отличается от %I).
Добавление поддерживаемых вариантов команды FOR при
включении расширенной
обработки команд:
FOR /F ["ключи"] %переменная IN (набор) DO команда [параметры]
Набор содержит имена одного или нескольких файлов, которые по
очереди открываются, читаются и обрабатываются. Обработка состоит в
чтении файла, разбивке его на отдельные строки текста и выделении из каждой
строки заданного числа подстрок (в том числе нуля). Затем найденная
подстрока используется в качестве значения переменной при выполнении
основного тела цикла. По умолчанию ключ /F выделяет из каждой строки файла
первое слово, очищенное от окружающих его пробелов. Пустые строки в файле
пропускаются.
Необязательный
параметры
"ключи"
служит
для
переопределения заданных по умолчанию правил обработки строк. Ключи
представляют собой заключенную в кавычки строку.
Передача управления содержащей метку строке пакетного файла
GOTO метка
метка - Строка пакетного файла, оформленная как метка.
Метка должна находиться в отдельной строке и начинаться с двоеточия.
Изменение команды GOTO при включении расширенной обработки
команд:
Команда GOTO принимает в качестве метки перехода строку :EOF,
которая вызывает передачу управления в конец текущего пакетного файла. Это
позволяетлегко выйти из пакетного файла без определения каких-либо меток.
Команда CALL /? выводит описание расширенных возможностей команды
CALL, делающих эту Функцию особенно полезной.
Оператор условного выполнения команд в пакетном файле
IF [NOT] ERRORLEVEL число команда
IF [NOT] строка1==строка2 команда
IF [NOT] EXIST имя_файла команда
NOT
Обращает истинность условия: истинное условие становится
ложным, а ложное - истинным.
ERRORLEVEL Условие является истинным, если код возврата последней
число
выполненной программы не меньше указанного числа.
Команда
Команда, которую следует выполнить в случае истинности
условия.
строка1==
Это условие является истинным, если указанные строки
строка2
совпадают.
EXIST
Это условие является истинным, если файл с указанным
имя_файла
именем существует.
Изменение команды IF при включении расширенной обработки
команд:
IF [/I] строка1 оператор_сравнения строка2 команда
IF DEFINED переменная команда где оператор_сравнения принимает
следующие значения:
EQL - равно
NEQ - не равно
LSS - меньше
LEQ - меньше или равно
GTR - больше
GEQ - больше или равно
а ключ /I, если он указан, задает сравнение текстовых строк без учета
регистра. Ключ /I можно также использовать и в форме строка1==строка2
команды IF. Сравнения проводятся по общему типу данных, так что если строки
1 и 2 содержат только цифры, то обе строки преобразуются в числа, после чего
выполняется сравнение чисел.
Условие DEFINED применяется подобно условию EXISTS, но принимает
в качестве аргумента имя переменной среды и возвращает истинное значение,
если эта переменная определена.
Строка %ERRORLEVEL% будет развернута в строковое представление
текущего значения кода ошибки ERRORLEVEL, за исключением ситуации,
когда уже имеется переменная среды с именем ERRORLEVEL; в подобном
случае подставляется значение этой переменной. Например, с помощью данной
строки можно выполнить следующее:
choice
goto answer%ERRORLEVEL%
:answer0
echo Введено Y (да)
:answer1
echo Введено N (нет)
Приостановка выполнения пакетного файла и вывод сообщения: «Для
продолжения нажмите любую клавишу . . .»
PAUSE
Помещение комментариев в пакетные файлы
REM [текст]
Изменение содержимого (сдвиг) подставляемых параметров для пакетного
файла
SHIFT [/n]
Команда вызывает уменьшение на единицу номеров, соответствующих
всем позиционным параметрам. Бывший параметр %0 перестает быть
доступным, параметр %1 становится параметром %0 и т.д.
Если при вызове пакетного файла было указано больше 9 параметров, то
"лишние" параметры становятся доступными после одной или нескольких
команд SHIFT, когда их номера попадают в диапазон %0 - %9.
Основное применение команды SHIFT - организация цикла по
неизвестному заранее числу параметров командной строки. Условием
окончания цикла может быть пустота очередного параметра.
Команда
SHIFT при
включении
расширенной
обработки
команд поддерживает ключ /n, задающий начало сдвига параметров с номера n,
где n может быть от 0 до 9.
1.8. Порядок выполнения работы
Лабораторная работа выполняется в лаборатории, оснащенной
компьютерами с установленной ОС Windows. Студенты получают задание на
написание пакетных файлов, изучают команды консольного режима по
приведенному описанию, осваивают применение команд на практике, пишут и
отлаживают пакетный файл, готовят отчет.
Отчет о лабораторной работе оформляется на бумаге в печатном или
рукописном виде. На титульном листе указывается название работы и состав
бригады. В отчете приводится формулировка задания, а также тексты
разработанных пакетных файлов с необходимыми пояснениями.
Когда студенты готовы к сдаче работы, преподаватель дает им 2-3 задания
на применение команд в диалоговом режиме, проверяет выполнение заданий, а
затем проверяет отчет. При выполнении заданий разрешается пользоваться
данным описанием, другой литературой или справочной системой Windows.
Преподаватель может задать дополнительные вопросы, выясняя уровень
освоения системы команд.
Не требуется заучивание наизусть всех описанных команд и тем более их
ключей, более важно понимание основ консольного режима и умение быстро
найти требуемую информацию в справочной системе.
1.9. Пример выполнения лабораторной работы
Задание. Написать и отладить пакетный файл, который получает в
качестве параметров одно или несколько расширений имени файла и для
каждого файла в текущем каталоге, имеющего одно из заданных расширений,
выполняет одно из трех действий по выбору пользователя: удаляет файл, выдает
его порциями на экран или пропускает без обработки.
Решение. Для выполнения поставленного задания можно использовать
два приведенных ниже пакетных файла.
Файл Laba.bat:
@echo off
:loop
if (%1)==() goto Exit
for %%i in (*.%1) do call DoIt %%i
shift
goto loop
:Exit
Файл DoIt.bat:
choice /C:УВП /N Файл %1 (У - удалить, В - выдать, П - пропустить):
if errorlevel 3 goto Exit
if errorlevel 2 goto Type
w:st="on"del %1
goto Exit
:Type
type %1 | more
:Exit
Задания на лабораторную работу.
1.
Написать и отладить пакетный файл, который получает в
качестве параметров дату, находит все файлы в каталоге с датой создания
равной указной датой и выполняет действие по выбору пользователя: архивация
файлов, удаление файлов. Информация о производимой операции должна
выдаваться на экран.
2.
Написать и отладить пакетный файл, который выдает перечень
файлов из указанных пользователем каталогов удовлетворяющих условию:
скрытый и системный. Выполняет с файлами операции: убрать скрытые и
убрать системные.
3.
Написать и отладить пакетный файл, который для всех файлов из
указанного каталога создает подкаталоги с именем равной дате создания файла
и переносит в эти каталоги файлы с указанной датой создания.
4.
Написать и отладить пакетный файл, который по выбору
пользователя переносит в архив или все файлы из каталога, формируя имя
архива указанное пользователем, или всех каталогов. При этом не должно
получаться вложенных архивов.
5.
Написать и отладить пакетный файл, который по выбору
пользователя будет завершать работу процессов.
6.
Создать задание которое будет запускаться каждые 2-4-8-16 и. т.
д. минут.
7.
Написать и отладить пакетный файл, который по выбору даты
пользователем будет архивировать все файлы в каталоге и подкаталогов
двухнедельной давности.
8.
Создать задание которое выведет список процессов компьютера
занимающих от 1МБ до 10 МБ памяти.
9.
Создать задание которое выведет список файлов начинающихся
на s и созданных не позднее указанной пользователем даты.
10.
Создать задание которое добавляет файлы из каталога к архиву
текущей недели. Архивы более недели должны быть перенесены в другой
каталог.
11.
Создать задание которое при изменении размера файла,
произведет его архивацию.
12.
Создать назначенное задание реализующее следующий механизм
создания резервного копирования данных в каталоге.
Данные представлены виде набора лог файлов и имеют расширения .log.
Формат имени файла YYYYMMDD.log, где YYYY – год лог файла, MM- месяц,
DD – день лог файла.
Необходимо ежедневно архивировать лог файлы с датой ранее 3 дней от
текущей даты. Лог файлы должны создаваться по принципу:
1.
Если не прошел месяц, то файлы просто архивируются за каждую дату и
остаются в каталоге с логами
2.
Если прошло более месяца и 3 дня, то все файлы за прошлый месяц
должны быть с архивированы в один файл и переписаны в другой каталог.
3.
Файлы за последние 3 дня не подлежат архивации.
4.
* - Логи за субботу и воскресенье хранятся в отдельных файлах в отличие
от всех остальных архивов.
Download