Командная оболочка - это отдельный программный продукт, который обеспечивает прямую связь между пользователем и операционной системой (ОС). Текстовый пользовательский интерфейс в виде командной строки предоставляет среду, в которой выполняются команды, программы и служебные утилиты с текстовым интерфейсом. В командной оболочке и результат выполнения утилит и программ отображается на экране в виде, сходном с командным интерпретатором 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` – порядковый номер файла. Каждый текстовый файл заполняется пронумерованным количеством строк равным его порядковому номеру