Автоматизируем рутину в Windows с помощью скриптов.
Иллюстрация: Оля Ежак для Skillbox Media

Филолог и технарь, пишет об IT так, что поймут даже новички. Коммерческий редактор, автор технических статей для vc.ru и «Хабра».
На Windows часто возникают рутинные задачи, которые хочется автоматизировать. Например, почистить временные файлы, забэкапить важные документы или запустить одним кликом несколько приложений. Для этого есть простой инструмент — BAT-файлы (в простонародье «батники»). В этой статье научимся разрабатывать простые скрипты и запускать их по расписанию.

CTO Flocktory, программный директор профессии «DevOps-инженер» в Skillbox, директор программного комитета DevOpsConf.
BAT-файлы — это скрипты с набором команд, которые понимает командная строка Windows. Их можно использовать для автоматизации задач, которые часто повторяются или занимают у пользователя много времени. Такие скрипты хранятся в файлах с расширением .bat.
Для создания BAT-файла понадобится любой текстовый редактор, например стандартный «Блокнот». Давайте откроем его и напишем скрипт, который выведет в окне командной строки сообщение Hello, World!:
@echo off
echo Hello, World!
pause
Теперь нужно сохранить документ в формате .bat. Для этого выберем пункт Сохранить как в разделе меню Файл.

В появившемся окне можно ввести любое название файла, а конце надо обязательно добавить расширение .bat. Затем нажимаем Сохранить:

Если запустить получившийся файл, откроется командная строка с нашим сообщением:

Для разработки батников существует множество команд. Рассмотрим те, что встречаются чаще всего.
| Команда | Аргумент команды | Действие |
|---|---|---|
| title | Желаемый заголовок | Устанавливает заголовок окна командной строки на желаемый |
| cd | Путь к каталогу | Переводит пользователя в каталог, указанный в пути к файлу |
| start | Команда или путь к файлу | Запускает указанный файл программы или выполнение команды в новом окне командной строки |
| mkdir или md | Имя папки | Создаёт папку с указанным именем |
| copy | Имена файлов и путь к папке для копирования | Копирует файлы в указанный каталог |
| xcopy | Имена файлов и путь к папке для копирования | Копирует каталоги и файлы, сохраняя их структуру |
| move | Путь к файлу и к конечному каталогу | Перемещает файлы из одной папки в другую |
| del | Путь к папке | Удаляет файлы внутри каталога. Не трогает папки |
| rd | Путь к папке | Удаляет папку |
| start | Путь к файлу программы | Запускает файл программы |
| color | Обозначение цвета | Меняет цвет фона и текста командной строки |
| echo | Текст | Выводит текст на экран командной строки |
| chcp | Обозначение кодировки | Указывает кодировку текста. Пригодится для корректного отображения кириллицы |
| pause | — | По окончании выполнения команд оставляет окно командной строки запущенным |
| exit | — | Завершает работу командной строки |
Переменная — виртуальная ячейка с присвоенным именем, в которой хранятся данные. Это может быть текст, числа или выражения. К переменной можно обращаться по имени, чтобы использовать её содержимое или перезаписывать его.
В BAT-файлах переменная объявляется с помощью команды set. После команды надо указать уникальное имя переменной и присвоить ей значение:
@echo off
set example=Hi,user!
echo %example%
pause
Разберём строки скрипта:
- @echo off — эта строка отключает отображение команд. Будут показаны только строки, которые начинаются с echo.
- set example=Hi, user! — создаёт переменную с именем primer и записывает в неё строку Hi, user!.
- echo %example% — выводит содержимое переменной на экран.
- pause — эта команда не даёт окну закрыться сразу после выполнения скрипта, чтобы мы могли оценить результат.
Если запустить этот BAT-файл, то в командной строке появится содержимое переменной example:

Для записи в переменную значения выражения надо использовать флаг /a перед именем:
set /a example=*
Для создания однострочных комментариев используют команду rem или двойное двоеточие (::):
rem текст_комментария
:: текст_комментария
Например, следующий скрипт не выведет на экран строку Следующие команды выводят текст на экран:
@echo off
rem Следующие команды выводят текст на экран
set primer=Hi, user!
echo %primer%
pause
Для больших комментариев на несколько строк можно использовать команду goto:
goto comment
===
текст_комментария
===
:comment
Разберём примеры готовых BAT-файлов для разных задач. Их можно скопировать и использовать уже сейчас.
Допустим, необходимо время от времени создавать копию всех текстовых файлов, лежащих в каталоге Документы. Чтобы не делать это каждый раз вручную, можно создать скрипт и запускать его с рабочего стола.
chcp
При каждом запуске скрипта в папке backup на диске C: будем создавать директорию с текущей датой в названии — так будет проще искать бэкапы. Для этого используем команду md с параметром %DATE%:
md
xcopy
Далее переходим в каталог с резервными копиями с помощью команды cd и вызываем 7-zip с параметром -tzip. Появится архив бэкапа в формате .zip:
cd -tzip a %DATE%.zip %DATE%
Кроме того, текст, выводящийся на экран, можно покрасить с помощью команды color, передав ей код цвета. Эту строчку лучше добавлять в начало батника.
Весь список доступных цветов приведён в таблице:

Скриншот: «Командная строка» / Skillbox Media

Скриншот: «Командная строка» / Skillbox Media
Полный текст скрипта для резервного копирования файлов:
@echo off
chcp
color
echo Начинается процесс резервного копирования
md
xcopy
cd -tzip a %DATE%.zip %DATE%
echo Процесс завершен
pause
Бывает, что для работы надо запустить одновременно несколько приложений — например, браузер, мессенджер, редактор кода и клиент Git. Этот процесс можно автоматизировать, чтобы все необходимые программы открывались по одному клику.
Исполняемые файлы запускаются командой start. В качестве аргумента ей надо передать путь к файлу на диске:
start
Так, чтобы открыть одновременно браузер Microsoft Edge, текстовый редактор WordPad и приложение «Службы», надо трижды вызвать команду start:
start "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"start "C:\Program Files\Windows NT\Accessories\wordpad.exe"start
Перед аргументом всегда добавляйте двойные кавычки (“”), иначе откроются не программы, а новые экземпляры командной строки.
В Windows есть папка Temp, в которой система собирает временные файлы из браузера и приложений. Если её не очищать, то со временем её размеры могут увеличиться до десятков гигабайт.
Пользователи редко чистят папку с временными файлами. Для этого надо включить отображение скрытых папок, найти директорию на диске и вручную удалять мусор. Проще автоматизировать эту задачу с помощью простого BAT-файла, который будет очищать папку Temp по клику мыши или расписанию.
Сначала вызовем команду rd с параметрами /s и /q — это полностью удалит папку с диска. Затем создадим Temp заново с помощью mkdir:
rd /s /q C:\Users\%USERNAME%\AppData\Local\Temp\
mkdir C:\Users\%USERNAME%\AppData\Local\Temp\
Запускать BAT-файлы можно разными способами. Самый очевидный — двойной щелчок левой кнопкой мыши. Также можно делать это из командной строки или настроить автоматический запуск по расписанию.
- Откройте окно поиска Windows. Он находится рядом с меню «Пуск».
- Введите в строке поиска cmd и запустите инструмент «Командная строка».

- В окне командной строки укажите полный путь до файла .bat и нажмите Enter.

Батники в Windows открываются в окне командной строки, что иногда может мешать в работе. Простой скрипт на языке VBScript позволяет запускать BAT-файлы в фоновом режиме:
- Откройте любой текстовый редактор, например «Блокнот».
- Вставьте в новый документ код скрипта для скрытого запуска:
Set WshShell = CreateObject()
WshShell.Run chr() & & Chr(),
Set WshShell = Nothing
- Сохраните файл, но вместо .bat укажите расширение .vbs.
- Запустите файл, щёлкнув по нему дважды левой кнопкой мыши.
Если у вас есть повторяющиеся задачи, то можно настроить запуск BAT-файлов по расписанию. Для этого понадобится встроенный в Windows «Планировщик заданий».
1. Нажмите сочетание клавиш Win + R, в появившемся окне введите taskschd.msc и нажмите Enter.

2. Откроется «Планировщик заданий». В правой части его окна нажмите Создать простую задачу.

3. В «Мастере создания простой задачи» введите имя новой задачи и её описание. Затем нажмите Далее.

4. Выберите периодичность запуска. Доступны опции с привязкой к конкретному времени или запуску системы.

5. Введите время, в которое нужно запускать задачу.

6. Отметьте пункт Запустить программу.

7. Укажите путь до вашего BAT-файла и нажмите Готово.

Теперь батник будет запускаться с заданной периодичностью. К примеру, так можно настроить автоматическое удаление временных файлов при каждом запуске системы или создание резервной копии раз в неделю.
BAT-файлы — мощный инструмент для автоматизации задач на компьютерах под управлением Windows. Больше о командах можно узнать из официальной документации Microsoft, а на GitHub разработчики публикуют коллекции полезных батников.

Научитесь работать с нейросетями — бесплатно!
Большая конференция по ИИ: пять экспертов и 10 нейросетей. Освойте нейросети — работа с ними становится обязательным навыком. Нажмите на баннер, чтобы узнать подробности.



