Что это такое и как с ними работать

Автоматизируем рутину в 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. Для этого выберем пункт Сохранить как в разделе меню Файл.

Что это такое и как с ними работать

Скриншот: «Блокнот» / Skillbox Media

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

Что это такое и как с ними работать

Скриншот: «Блокнот» / Skillbox Media

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

Что это такое и как с ними работать

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

Для разработки батников существует множество команд. Рассмотрим те, что встречаются чаще всего.

КомандаАргумент командыДействие
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:

Что это такое и как с ними работать

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

Для записи в переменную значения выражения надо использовать флаг /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

Что это такое и как с ними работать

Так выглядит перекрашенная командная строка Windows
Скриншот: «Командная строка» / 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 и запустите инструмент «Командная строка».

Что это такое и как с ними работать

Скриншот: «Командная строка» / Skillbox Media
  • В окне командной строки укажите полный путь до файла .bat и нажмите Enter.

Что это такое и как с ними работать

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

Батники в Windows открываются в окне командной строки, что иногда может мешать в работе. Простой скрипт на языке VBScript позволяет запускать BAT-файлы в фоновом режиме:

  • Откройте любой текстовый редактор, например «Блокнот».
  • Вставьте в новый документ код скрипта для скрытого запуска:

Set WshShell = CreateObject()
WshShell.Run chr() & & Chr(),
Set WshShell = Nothing

  • Сохраните файл, но вместо .bat укажите расширение .vbs.
  • Запустите файл, щёлкнув по нему дважды левой кнопкой мыши.

Если у вас есть повторяющиеся задачи, то можно настроить запуск BAT-файлов по расписанию. Для этого понадобится встроенный в Windows «Планировщик заданий».

1. Нажмите сочетание клавиш Win + R, в появившемся окне введите taskschd.msc и нажмите Enter.

Что это такое и как с ними работать

Скриншот: Меню «Выполнить» / Skillbox Media

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

Что это такое и как с ними работать

Скриншот: «Планировщик заданий» / Skillbox Media

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

Что это такое и как с ними работать

Скриншот: «Мастер создания простой задачи» / Skillbox Media

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

Что это такое и как с ними работать

Скриншот: «Мастер создания простой задачи» / Skillbox Media

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

Что это такое и как с ними работать

Скриншот: «Мастер создания простой задачи» / Skillbox Media

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

Что это такое и как с ними работать

Скриншот: «Мастер создания простой задачи» / Skillbox Media

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

Что это такое и как с ними работать

Скриншот: «Мастер создания простой задачи» / Skillbox Media

Теперь батник будет запускаться с заданной периодичностью. К примеру, так можно настроить автоматическое удаление временных файлов при каждом запуске системы или создание резервной копии раз в неделю.

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

Что это такое и как с ними работать

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

:/>  Как добавить пользовательские шрифты в командную строку в Windows 10