Главная Веб-разработка BAT-файлы: что это такое и как с ними работать

BAT-файлы: что это такое и как с ними работать

от admin

Автоматизируем рутину в Windows с помощью скриптов.

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

BAT-файлы: что это такое и как с ними работать

Дмитрий Зайцев

CTO Flocktory, программный директор профессии «DevOps-инженер» в Skillbox, директор программного комитета DevOpsConf.

Как создать BAT-файл

BAT-файлы — это скрипты с набором команд, которые понимает командная строка Windows. Их можно использовать для автоматизации задач, которые часто повторяются или занимают у пользователя много времени. Такие скрипты хранятся в файлах с расширением .bat.

Для создания BAT-файла понадобится любой текстовый редактор, например стандартный «Блокнот». Давайте откроем его и напишем скрипт, который выведет в окне командной строки сообщение Hello, World!:

@echo off echo Hello, World! pause

Теперь нужно сохранить документ в формате .bat. Для этого выберем пункт Сохранить как в разделе меню Файл.

BAT-файлы: что это такое и как с ними работать

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

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

BAT-файлы: что это такое и как с ними работать

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

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

BAT-файлы: что это такое и как с ними работать

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

Команды и синтаксис BAT-файла

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

Команда Аргумент команды Действие
title Желаемый заголовок Устанавливает заголовок окна командной строки на желаемый
cd Путь к каталогу Переводит пользователя в каталог, указанный в пути к файлу
start Команда или путь к файлу Запускает указанный файл программы или выполнение команды в новом окне командной строки
mkdir или md Имя папки Создаёт папку с указанным именем
copy Имена файлов и путь к папке для копирования Копирует файлы в указанный каталог
xcopy Имена файлов и путь к папке для копирования Копирует каталоги и файлы, сохраняя их структуру
move Путь к файлу и к конечному каталогу Перемещает файлы из одной папки в другую
del Путь к папке Удаляет файлы внутри каталога. Не трогает папки
rd Путь к папке Удаляет папку
start Путь к файлу программы Запускает файл программы
color Обозначение цвета Меняет цвет фона и текста командной строки
echo Текст Выводит текст на экран командной строки
chcp Обозначение кодировки Указывает кодировку текста. Пригодится для корректного отображения кириллицы
pause По окончании выполнения команд оставляет окно командной строки запущенным
exit Завершает работу командной строки

Как объявить переменную в BAT-файле

Переменная — виртуальная ячейка с присвоенным именем, в которой хранятся данные. Это может быть текст, числа или выражения. К переменной можно обращаться по имени, чтобы использовать её содержимое или перезаписывать его.

В 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:

BAT-файлы: что это такое и как с ними работать

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

Для записи в переменную значения выражения надо использовать флаг /a перед именем:

set /a example=5*10

Как комментировать строки
в BAT-файле

В BAT-файлах бывает очень много строк кода. Настолько много, что в них можно заблудиться, а со временем забыть логику всего скрипта. В таких случаях лучше использовать комментарии, объясняющие код. Они не отображаются при запуске и не влияют на выполнение команд.

Для создания однострочных комментариев используют команду rem или двойное двоеточие (::):

rem текст_комментария :: текст_комментария

Например, следующий скрипт не выведет на экран строку Следующие команды выводят текст на экран:

@echo off rem Следующие команды выводят текст на экран set primer=Hi, user! echo %primer% pause

Для больших комментариев на несколько строк можно использовать команду goto:

goto comment === текст_комментария === :comment

Обратите внимание, что после goto следует название метки — comment, она же и закрывает комментарий в конце. На самом деле можно использовать любое название метки, главное — чтобы оно было уникальным.

Примеры BAT-файлов

Разберём примеры готовых BAT-файлов для разных задач. Их можно скопировать и использовать уже сейчас.

Резервное копирование

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

Батники лучше начинать с команды @echo off, чтобы избавиться от служебных строк, которые информируют о ходе выполнении скрипта. Убрав их, мы ничего не потеряем. Если нужно будет выводить текст, написанный кириллицей, то второй строчкой BAT-файла нужно указать кодировку:

Читать также:
Что такое GraphQL, как он работает и зачем понадобился

chcp 65001

При каждом запуске скрипта в папке backup на диске C: будем создавать директорию с текущей датой в названии — так будет проще искать бэкапы. Для этого используем команду md с параметром %DATE%:

md “C:/backup/%DATE%”

Теперь скопируем содержимое папки «Документ» в созданную директорию. С помощью параметра %USERNAME% можно обратиться к файлам текущего пользователя, если на компьютере их несколько:

xcopy “C:/Users/%USERNAME%/Documents” “C:/backup/%DATE%”

Для экономии места будем архивировать бэкапы с помощью 7-zip. Нужно будет предварительно скачать и установить программу по инструкции на сайте разработчика.

Далее переходим в каталог с резервными копиями с помощью команды cd и вызываем 7-zip с параметром -tzip. Появится архив бэкапа в формате .zip:

cd “C:/backup/%DATA%” “C:/Program Files/7-Zip/7z.exe” -tzip a %DATE%.zip %DATE%

Ход выполнения скрипта можно сопровождать сообщениями командной строки, чтобы пользователь узнал, когда резервное копирование завершится. Для вывода сообщений используется команда echo.

Кроме того, текст, выводящийся на экран, можно покрасить с помощью команды color, передав ей код цвета. Эту строчку лучше добавлять в начало батника.

Весь список доступных цветов приведён в таблице:

BAT-файлы: что это такое и как с ними работать

Таблица цветов для оформления скриптов
Скриншот: «Командная строка» / Skillbox Media

BAT-файлы: что это такое и как с ними работать

Так выглядит перекрашенная командная строка Windows
Скриншот: «Командная строка» / Skillbox Media

Полный текст скрипта для резервного копирования файлов:

@echo off chcp 65001 color 03 echo Начинается процесс резервного копирования md “C:/backup/%DATE%” xcopy “C:/Users/%USERNAME%/Documents” “C:/backup/%DATE%” cd “C:/backup/%DATA%” “C:/Program Files/7-Zip/7z.exe” -tzip a %DATE%.zip %DATE% echo Процесс завершен pause

Запуск нескольких программ одновременно

Бывает, что для работы надо запустить одновременно несколько приложений — например, браузер, мессенджер, редактор кода и клиент Git. Этот процесс можно автоматизировать, чтобы все необходимые программы открывались по одному клику.

Исполняемые файлы запускаются командой start. В качестве аргумента ей надо передать путь к файлу на диске:

start “” “путь_к_исполняемому_файлу”

Так, чтобы открыть одновременно браузер Microsoft Edge, текстовый редактор WordPad и приложение «Службы», надо трижды вызвать команду start:

start “” “C:Program Files (x86)MicrosoftEdgeApplicationmsedge.exe” start “” “C:Program FilesWindows NTAccessorieswordpad.exe” start “” “C:Windowssystem32services.msc”

Перед аргументом всегда добавляйте двойные кавычки (“”), иначе откроются не программы, а новые экземпляры командной строки.

Очистка временных файлов

В Windows есть папка Temp, в которой система собирает временные файлы из браузера и приложений. Если её не очищать, то со временем её размеры могут увеличиться до десятков гигабайт.

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

Сначала вызовем команду rd с параметрами /s и /q — это полностью удалит папку с диска. Затем создадим Temp заново с помощью mkdir:

rd /s /q C:Users%USERNAME%AppDataLocalTemp mkdir C:Users%USERNAME%AppDataLocalTemp

Как запустить BAT-файл через командную строку

Запускать BAT-файлы можно разными способами. Самый очевидный — двойной щелчок левой кнопкой мыши. Также можно делать это из командной строки или настроить автоматический запуск по расписанию.

Ручной запуск

  • Откройте окно поиска Windows. Он находится рядом с меню «Пуск».
  • Введите в строке поиска cmd и запустите инструмент «Командная строка».

BAT-файлы: что это такое и как с ними работать

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

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

BAT-файлы: что это такое и как с ними работать

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

Запуск BAT-файла в скрытом режиме

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

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

Set WshShell = CreateObject(“WScript.Shell”) WshShell.Run chr(34) & “Полный_путь_до_.bat_файла” & Chr(34), 0 Set WshShell = Nothing

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

Запуск по расписанию

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

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

BAT-файлы: что это такое и как с ними работать

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

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

BAT-файлы: что это такое и как с ними работать

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

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

BAT-файлы: что это такое и как с ними работать

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

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

BAT-файлы: что это такое и как с ними работать

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

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

BAT-файлы: что это такое и как с ними работать

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

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

BAT-файлы: что это такое и как с ними работать

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

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

BAT-файлы: что это такое и как с ними работать

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

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

Что дальше

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

Похожие статьи