Командная оболочка - это отдельный программный продукт, который обеспечивает прямую связь между пользователем и операционной системой (ОС). Текстовый пользовательский интерфейс в виде командной строки предоставляет среду, в которой выполняются команды, программы и служебные утилиты с текстовым интерфейсом. В командной оболочке и результат выполнения утилит и программ отображается на экране в виде, сходном с командным интерпретатором Command.com MS-DOS. Командная оболочка ОС Windows использует интерпретатор команд Cmd.exe, который осуществляет перевод введенной команды в понятный ОС вид, загружает приложения (утилиты) и управляет потоками данных между ними. Имеется возможность использовать командную оболочку для создания и редактирования пакетных файлов (текстовых файлов с расширением `.bat`, также называемых сценариями), что позволяет автоматизировать выполнение обычных задач. Например, можно использовать сценарии для автоматизации управления учетными записями пользователей и ежедневной архивацией в нерабочие часы. Также можно использовать сервер сценариев ОС Windows, `Cscript.exe`, для выполнения сложных сценариев посредством командной оболочки. Выполнение операций с помощью пакетных файлов является более эффективным, чем с помощью текстового интерфейса пользователя. Командные или пакетные файлы принимают все команды, доступные из командной строки. К числу основных команд и служебных утилит, используемых при работе с файлами, дисками и томами в ОС Windows посредством командной оболочки, относятся, приведенные в списке: - `Assoc` - `Attrib` - `Cacls` - `Cd` - `Chdir` - `Chkdsk` - `Chkntfs` - `Comp` - `Compact` - `Convert` - `Copy` - `Date` - `Del` - `Dir` - `Diskcomp` - `Diskcopy` - `Erase` - `Fc` - `Find` - `Findstr` - `Format` - `Label` - `Md` - `Mkdir` - `Move` - `Print` - `Rd` - `Recover` - `Ren` - `Rename` - `Replace` - `Rmdir` - `Subst` - `Tree` - `Type` - `Vol` - `Xcopy` Справку также можно получить, набрав в окне командной оболочки строку `Help` и нажав `Enter` для ввода. В пакетных файлах можно использовать практически все команды ОС Windows. Но есть несколько специальных команд, которые обретают смысл только в пакетных файлах. Таких специальных команд немного, но они играют важную роль при создании логики командного файла. В Таблице представлен список этих команд и их краткое описание: | Команда | Краткое описание | | -------- | ----------------------------------------------------------------------------------- | | `call` | Вызов одного пакетного файла из другого | | `echo` | Вывод сообщений и переключение режима отображения команд на экране | | `rem` | Помещение комментариев в пакетные файлы | | `pause` | Приостановка выполнения пакетного файла и вывод сообщения | | `if` | Оператор условного выполнения команд в пакетном файле | | `goto` | Передача управления в отмеченную строку пакетного файла | | `choice` | Получение от пользователя ответа на поставленный заранее или в самой команде вопрос | | `shift` | Изменение содержимого (сдвиг) подставляемых параметров для пакетного файла | | `for` | Запуск указанной команды для каждого из файлов в наборе | Подсказку по каждой команде можно получить, указав после имени команды ключ `/?`. Более подробное описание применения команд можно найти на сайте https://ss64.com. **Примеры пакетных файлов:** 1. Смысл этого файла в том, чтобы он создает новую папку `BACKUP` и копирует в нее содержимое текущей папки ```batch @echo off cls echo start backup mkdir backup copy *.* backup echo end backup ``` Для проверки работы этого файла можно создать папку `BAT`, создать в ней несколько файлов (например, текстовых), поместить в нее файл `backup.bat`, содержащий перечисленные выше команды, и запустить его на выполнение. Использование символа `@` перед командой отключения отображения команд `ECHO OFF` позволяет отключить вывод самой этой команды на экран. В результате на экране появляются только результаты выполнения команд и системные сообщения. 2. Для создания файла в процессе выполнения пакетного файла используется символ перенаправления. Он выглядит так: `>`. Например, можно создать файл-отчет о работе bat-файла с именем, равным дате запуска bat-файла: ```batch set datetemp=%date:~-10% @echo .>%DATETEMP%.txt ``` Сначала в памяти создаем переменную `datetemp`, которой присваиваем 10 символов справа налево от системной переменной `DATE`. Таким образом, теперь во временной переменной `datetemp` содержится только текущая дата. Следующей строкой перенаправляем вывод символа точка в файл, имя которого берем из переменной `datetemp`, а расширение `txt` указываем явно. 3. Использование команды `for` для последовательного вывода на экран монитора содержимого всех текстовых файлов `txt` текущего каталога: ```batch @echo off cls for %%f in (*.txt) do type %%f ``` **Задания:** 1. Для каждой из команд, приведенных в списке выяснить её назначение и привести пример (скриншот) работы команды 2. Создать пакетный файл и выполнить задание (вариант 9): Написать командный файл создающий определенное количество текстовых файлов. Количество файлов передать в качестве аргумента. Имена файлов задать по шаблону `file_NUMBER.txt`, где `NUMBER` – порядковый номер файла. Каждый текстовый файл заполняется пронумерованным количеством строк равным его порядковому номеру