Рассмотрим мощный инструмент автоматизации рутинных задач в семействе операционных систем Windows.
Что такое bat-файлы?
BAT-файл — это последовательность команд для интерпретатора командной строки в виде текстового файла с расширением .bat или .cmd. Основное предназначение пакетных файлов — автоматизация рутинных действий пользователя компьютера.
Название BAT появилось от английского batch — пакетная обработка. В истории продуктов Microsoft пакетные файлы существовали с первой версии MS-DOS в 80-х годах и позже успешно интегрировались в Microsoft Windows. В MS-DOS командным интерпретатором выступает COMMAND.COM, а начиная с Windows NT и до сих пор используется CMD.EXE.
Интерпретатор COMMAND.COM принимает файлы с расширением .BAT. Расширение .CMD создано для интерпретатора CMD.EXE с целью различать файлы для «старого» и «нового» интерпретаторов. CMD.EXE корректно обрабатывает оба расширения.
Интерпретатор CMD.EXE является частью современных операционных систем семейства Microsoft Windows, несмотря на отсутствие развития с начала 2000-х.
Основы взаимодействия с bat-файлами
Пакетный файл bat — это текстовый документ со специальным расширением. Для создания своего первого bat-файла достаточно «Блокнота», который доступен в операционной системе. Для повышения удобства написания и поддержки bat-файлов рекомендуем использовать Notepad++ или любой другой текстовый редактор с подсветкой синтаксиса.
Создание bat-файлов
Для создания пакетных файлов необходимо открыть текстовый редактор и в меню Файл выбрать Сохранить как….
В появившемся окне выбрать Тип файла → Все файлы и задать имя с расширением .bat, как продемонстрировано на изображении выше. По умолчанию Windows скрывает расширения файлов, и пакетный файл можно отличить от текстового по пиктограмме окна с шестеренками.
Если вы ошиблись при сохранении и пакетный файл сохранился с расширением txt, то не обязательно совершать повторное сохранение. Можно включить отображение расширения имен файлов и переименовать файл.
Запуск bat-файлов
Запуск пакетных файлов производится двойным кликом по иконке. Дополнительно можно использовать команду Открыть из контекстного меню, которое доступно при нажатии правой клавиши мыши (ПКМ) по файлу. Если для выполнения команд требуются права администратора, то в том же контекстном меню есть пункт Запуск от имени администратора.
Исполняемые bat-файлы не могут запрашивать права администратора, если командам нужны расширенные права.
Запуск через контекстное меню откроет командный интерпретатор, в котором выполнятся команды bat-файла. По завершении команд окно закроется. Такое поведение неприемлемо, если от пакетного файла требуется какая-то обратная связь — например, сообщение об ошибке или результат вычислений. В таком случае интерпретатор следует запустить вручную и передать ему пакетный файл.
Для запуска интерпретатора командной строки необходимо открыть меню Выполнить сочетанием клавиш Win + R, вписать cmd и нажать ОК.
Для запуска пакетного файла его необходимо перенести мышкой в открывшееся окно и нажать Enter. Команды bat-файла будут выполнены, а его вывод вы увидите на экране.
Вне зависимости от способа запуска откроется окно, которое может привлекать внимание и раздражать. Для запуска в «скрытом» режиме необходимо использовать другой скриптовой язык Microsoft Windows — VBScript.
По аналогии создаем файл с расширением .vbs и заполняем его следующими командами:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "С:\путь\до\вашего\скрипта.bat" & Chr(34), 0
Set WshShell = Nothing
Для скрытого запуска следует запускать созданный файл, а не bat-файл. Скрытый запуск bat-файла актуален для автоматизации действий по расписанию, например, создание резервной копии.
Запуск по расписанию
За выполнение действий по расписанию отвечает Планировщик заданий. Открываем меню Выполнить и запускаем программу taskschd.msc.
Выбираем пункт Создать простую задач и заполняем параметры задания:
- имя для простой идентификации,
- периодичность и время запуска,
- действие — Запустить программу,
- программа или сценарий — путь до вашего .bat-файла или .vbs-файла, который запускает .bat-файл скрытно.
Обратите внимание, что планировщик позволяет не только выполнять действие по времени, но и при наступлении события — например, при загрузке компьютера. Такой подход является альтернативой автозагрузке.
В случае разработки собственного bat-файла следует ознакомиться с основами командного интерпретатора.
Команды и синтаксис пакетных файлов
Командный интерпретатор выполняет команды из файла последовательно — строка за строкой. Исключение составляет только оператор GOTO, который «отправляет» к указанной строке. Командный интерпретатор выполняет два вида команд: встроенные команды и внешние исполняемые файлы.
Внешние исполняемые файлы — это любой исполняемый файл, то есть с расширением EXE, CMD или BAT, который доступен в операционной системе. Например, «Блокнот» — это исполняемый файл notepad.exe. Следующая команда приведет к запуску этого приложения с открытым файлом C:\1.txt:
notepad.exe C:\1.txt
Аргументом может быть не только путь, но и ключ — специальный аргумент, который начинается с символа слэш (/). У каждой программы свой «реестр» ключей и их значений.
Обратите внимание, что не все внешние команды «понимают» аргументы, переданные из интерпретатора командной строки. Например, исполняемый файл приложения калькулятор, calc.exe, игнорирует все аргументы командной строки. Внешним исполняемым файлом может быть в том числе другой bat-файл.
Встроенные команды — это команды, которые являются частью интерпретатора командной строки. Полный список команд доступен по команде HELP. Данные команды не имеют отдельного исполняемого файла.
Иногда в имени файла или каталога встречаются пробелы. Наиболее очевидный пример — каталог Program Files на диске C. В этом случае помогают кавычки. Их можно расставить различными способами. Например:
cd "C:\Program Files\123"
cd C:\”Program Files”\123
Операционная система Windows запрещает использование множества специальных символов в именах файлов, в том числе кавычки, поэтому проблем с указанием файлов не возникнет.
Оставлять комментарии при разработке — хороший тон. Так можно объяснить выполняемые действия и потенциальные ошибки. В пакетных файлах можно оставлять комментарии несколькими способами.
Официальный способ — команда rem или два двоеточия.
rem Это первый комментарий
:: Это тоже комментарий
Перечисленные команды позволяют оставлять однострочные комментарии. Если хочется оставить развернутый многострочный комментарий, то прибегают к хитрости с командной GOTO.
goto start
===
Здесь можно оставить большой комментарий,
лицензию или даже ASCII-арт
===
:start
В конце комментария задаем имя метки, а в начале комментария выполняем команду GOTO c именем метки. Этот способ требует внимания, так как для каждого комментария должна быть своя метка, иначе выполнение bat-файла может отличаться от ожидания разработчика.
Совместимость с MS-DOS
В старых ОС, таких как MS-DOS, было ограничение на отображение имени файлов. На экран выводилось восемь символов имени, точка и три символа расширения. Если имя файла превышало по длине восемь символов, то имя файла отображалось по следующей схеме:
<первые шесть символов имени>~<порядковый номер>
Например, каталог Program Files выглядит следующим образом:
Progra~1
В современных операционных системах такое отображение не применяется, но CMD.EXE до сих пор поддерживает такие запросы к файлам и каталогам.
Выберите подходящий из более 100 готовых конфигураций.
Примеры bat-файлов
Рассмотрим несколько примеров bat-файлов. Начнем с базовых команд.
Обновление IP-адреса
Представим простой пример: необходимо обновить аренду IP-адресов на всех сетевых интерфейсах. В командной строке это делается одной командой:
ipconfig /renew
Данная команда генерирует много текстового вывода, который может испугать неподготовленного пользователя. Сама команда также может быть непривлекательной. Поэтому отключим отображение команды и перенаправим вывод выполнения в «никуда». Вместо слова NUL может быть любое имя или путь. Тогда вывод будет перенаправлен в указанный файл.
rem Отключаем отображение команд. Символ @ отключает отображение текущей команды
@echo off
rem Переводим вывод выполнения в устройство NUL, вывод исчезнет
ipconfig /renew > NUL
При запуске такого скрипта появляется черное окно, которое быстро исчезает. Можно оставить простые и понятные пользователю сообщения и не дать окну закрыться.
@echo off
echo Выполняется настройка, пожалуйста, подождите...
ipconfig /renew > NUL
echo Все хорошо.
rem Эта команда остановит выполнение до тех пор, пока пользователь не нажмет любую клавишу
pause
Скорее всего данный скрипт выведет набор непонятных символов вместо сообщения. Дело в том, что в русскоязычных ОС Windows по умолчанию в CMD.EXE используется кодировка CP866. Блокнот сохраняет в CP1251 (Windows-1251), а Notepad++ — в UTF-8. Для решения проблемы необходимо сменить кодировку интерпретатора командой chcp или сохранить bat-файл в кодировке интерпретатора.
rem Смена кодировки на Windows-1251
chcp 1251 > NUL
rem Смена кодировки на UTF-8
chcp 65001 > NUL
Я сохранил файл в кодировке UTF-8 и итоговый скрипт получился таким:
@echo off
chcp 65001 > NUL
echo Выполняется настройка, пожалуйста, подождите...
ipconfig /renew > NUL
echo Все хорошо.
pause
Создание резервной копии каталога
Перейдем к более жизненной ситуации — создание резервной копии (backup) каталога. Предположим, что каждый архив должен иметь в названии дату создания копии. Создадим каталог, имя которого — текущая дата. Текущая дата хранится в переменной DATE. Для обращения к переменным название переменной помещается между знаками процента.
mkdir %DATE%
cd %DATE%
Копирование файлов в текущий каталог производится командой COPY.
rem файлы 1.txt и 2.txt будут скопированы в текущую папку
COPY C:\1.txt C:\2.txt .
rem файл 3.txt будет сохранен в текущую папку как example.txt
COPY C:\1.txt .\example.txt
Возможно, в резервную копию необходимо дополнить служебную информацию — например, список файлов в корне копии и имя компьютера.
rem Имя компьютера записывается в файл computer.txt
hostname > computer.txt
rem Список файлов в текущем каталоге записывается в files.txt
dir . > files.txt
Обычно резервные копии хранят в zip- или rar-архивах. Из командной строки отлично управляется архиватор 7z.
cd ..
7z -tzip a backup.zip %DATE%
Переименование файлов
Переименование файлов в Windows производится командой RENAME. Однако эта команда имеет свои особенности.
Во-первых, переименование возможно только в рамках одного диска и одного каталога. Между каталогами одного диска допустимо перемещение, а между разными дисками — только копирование.
rename abc.txt cba.txt
Во-вторых, возможно переименование по маске. Допустим, есть список фотографий photo000.jpeg, photo001.jpeg и так далее. Нужно сменить префикс с photo на mobile.
rename photo* mobile*
Если в текущем каталоге есть другие файлы с префиксом photo, а переименовать надо только изображения с расширением jpeg, то команда модифицируется:
rename photo*.jpeg mobile*.jpeg
Удаление файлов
Программы и пользователи оставляют следы работы в виде файлов, которые не удаляются автоматически. К счастью, процесс очистки поддается автоматизации.
Предположим, что в процессе работы пользователя генерируется большое количество файлов с расширением jpeg, которые нужно удалять. На помощь приходит оператор цикла FOR.
rem Ищем все файлы с расширением jpeg в каталоге work
rem Ключ /r включает в поиск все подкаталоги в каталоге work
for /r work %%file in (*.jpeg) do (
rem Выводим имя файла
echo %%file
delete %%i
)
Заключение
Командный интерпретатор CMD.EXE существует долгое время, но, даже несмотря на отсутствия развития, остается востребованным инструментом для автоматизации рутинных действий в операционной системе Microsoft Windows.
-
Главная
-
Инструкции
-
Windows
-
Bat-файлы: создание, настройка и основные команды
BAT-файлы, или, как их еще называют опытные пользователи, «батники» — это текстовые файлы с расширениями .bat
или .cmd
, которые хранят набор команд и выполняют их в терминале операционной системы. Такие файлы необходимы для автоматизации стандартной работы пользователей в Windows.
В данной статье будет подробно рассказано о всех процессах взаимодействия с bat-файлами, их работе и основных командах, которые используются в процессе создания таких файлов.
В данном разделе статьи поговорим о взаимодействии с bat-файлами. Для начала пройдемся по требованиям, которых будет достаточно для написания своего первого «батника»:
- Устройство с операционной системой Windows.
- Наличие блокнота, либо другого текстового редактора. Рекомендуем использовать редакторы с встроенной подсветкой синтаксиса — например, Notepad++.
Создание bat-файла
Перейдем к созданию bat-файла. Для этого откроем любой текстовый редактор и заполним его некоторым содержимым. В качестве примера, создадим bat-файл, который будет выводить в окне интерпретатора командной строки сообщение «Hello, user!»:
@echo off
echo Hello, user!
pause
Теперь необходимо сохранить файл, используя расширение .bat
. Для этого переходим в меню и выбираем «Сохранить как…», как показано на картинке ниже.
Далее необходимо выбрать тип файлов в открывшемся окне. Для этого открываем соответствующий выпадающий список и выбираем «Все файлы», а в строке выше указываем имя файла и его расширение. Результат продемонстрирован на картинке ниже.
Пример выше подходит для пользователей, которые используют блокнот в качестве текстового редактора. Если пользователь использует Notepad++, то в типе файла выбираем «Batch file», как показано на рисунке ниже.
Если вдруг пользователь сохранил файл с неправильным расширением — ничего страшного. Это можно исправить, переименовав файл и указав правильное расширение. Чтобы это сделать, необходимо включить отображения расширений во вкладке проводника «Вид».
Запуск bat-файла
Чтобы запустить bat-файл, достаточно кликнуть по нему два раза левой кнопкой мыши. Стоит учитывать, что некоторые «батники» могут содержать команды, требующие прав администратора. Такие файлы сами не запрашивают расширенных прав, поэтому их нужно запускать исключительно от имени администратора, используя правую кнопку мыши.
Перечисленные выше методы запуска допустимы только в тех случаях, когда пользователь не ожидает ответа после запуска «батника». Если же запуск подразумевает какое-то системное сообщение или численный результат как ответ на выполнение команд, тогда необходимо выполнять запуск, используя интерпретатор командной строки.
Чтобы запустить интерпретатор командной строки, достаточно выполнить сочетание клавиш WIN+R, вписать в поле ввода cmd
и нажать клавишу Enter. В результате откроется окно командной строки, в которое необходимо перенести нужный файл для его запуска и нажать клавишу Enter.
После выполненных действий, «батник» начнет выполнение команд и отобразит необходимый результат, если это запланировано.
Запустим тестовый файл, который мы создавали немного ранее и посмотрим на результат.
Как видно по картинке выше, сообщение успешно отобразилось.
Настройка периодического запуска
Полезная функция при работе с bat-файлами – это возможность запускать их с некоторой периодичностью. Для реализации понадобится встроенный в Windows сервис — «Планировщик заданий».
Откроем «Планировщик заданий». Для этого используем комбинацию клавиш WIN+R и вводим taskschd.msc
в поле ввода, после чего нажимаем клавишу Enter.
В открывшемся окне планировщика выбираем в правом меню «Действия» пункт «Создать простую задачу…». После этого откроется окно «Мастер создания простой задачи», в которой пользователю будет предложено заполнить 4 вкладки:
- Создание простой задачи. Здесь будем указывать имя и описание задачи.
- Триггер. Данная вкладка отвечает за выбор периода (как часто будет запускаться bat-файл и в какое время).
- Действие. Здесь необходимо выбрать запуск программы и нажать «Далее». После этого пользователь указывает путь до необходимого «батника».
- Завершение. В данной вкладке происходит проверка всех введенных данных.
По завершении заполнения всех вкладок bat-файл добавляется в расписание Windows и будет автоматически запускаться в указанный период.
Синтаксис написания bat-файла
Ниже будут представлен список основных правил, которые нужно знать при написании bat-файла:
- Любая команда должна быть определена с новой строки.
- Указанные в файле команды выполняются строго по порядку, от первого к последнему. Исключением являются те случаи, когда внутри файла организован переход от одной части к другой (например
goto
). - Чтобы исключить возможные ошибки, директории указываются в кавычках.
|Y|
указывается перед командами, которые требуют подтверждения (Напримерdel
илиformat
).- Возможно указывать два типа команд: встроенные и внешние. Первые — это команды самого интерпретатора командной строки (о них мы поговорим позже). Ко второму типу относятся все возможные исполняемые файлы (расширения
.EXE
,.CMD
или.BAT
). - Для отключения отображения командной строки в открывшемся окне интерпретатора, после запуска «батника», используется
@echo off
в начале файла.
Комментирование
Оставлять комментарии во время написания bat-файла возможно тремя способами:
rem
. После ее объявления указывается необходимый комментарий.
rem текст_комментария
- Двойное двоеточие. Работает аналогично команде
rem
.
:: текст_комментария
goto
. К ней нужен особый подход, так как она используется не только для комментирования, но и для перехода к другой части bat-файла. После объявление команды указывается метка (в примере ниже —start
).
goto start
текст_комментария
:start
Для каждого комментария должна быть объявлена своя уникальная метка.
Основные команды
Ниже в таблице представим основные команды, использующиеся при написании bat-файла, а также аргументы к ним и их описание.
Команда |
Аргумент |
Описание |
|
Каталог |
Переход к указанному каталогу (пустой аргумент — возвращение текущей директории). |
|
— |
Приостановка пакетного файла. |
|
Путь к файлу/команда |
Выполнение указанной программы либо команды в отдельном окне. |
|
Каталог |
Создание каталога. |
|
Исходные файлы (путь к ним) и каталог/имя, куда копировать |
Копирование одного или нескольких файлов в указанный каталог. |
|
Имя файла или каталога |
Удаление одного или нескольких файлов. |
|
Путь до файла для запуска |
Запуск пакетного файла из другого. |
|
Имя заголовка |
Изменение заголовка окна. |
|
Исходный и конечный путь к файлу/файлам |
Перемещение одного файла или группы файлов из одного каталога в другой. |
|
Цвет фона и текста (задается цифрой либо буквой) |
Изменение цветов текста и фона. |
|
— |
Завершение работы пакетного файла. |
Это не полный список. Чтобы ознакомиться со всеми командами, достаточно написать в строке интерпретатора командной строки help
, как показано на картинке ниже.
Переменные
Кроме команд, стоит упомянуть о переменных, которые также можно использовать при написании bat-файла.
Для добавления переменной существует команда set
. Чтобы объявить переменную, необходимо написать в строке set
, а затем ее имя и значение. Если необходимо обратиться к переменной и считать ее значение, то к имени переменной слева и справа добавляется символ %
. Приведем ниже пример:
@echo off
set example=Hello, user!
echo %example%
pause
Учитывайте, что пробелы перед знаком равенства и после не ставятся, иначе программа не будет работать. Результат запуска «батника» из примера выше продемонстрирован на картинке ниже.
Также, при объявлении переменной можно воспользоваться флагом /a
, который отвечает за присваивание переменной числа. Например:
@echo off
set /a example=2*3
echo %example%
pause
При отсутствии такого флага, переменной присваивается вся строка после знака равенства. Результат представленной выше программы продемонстрирован на картинке:
Кроме обычных переменных существуют переменные аргумента. Данным переменным присваиваются значения, которые передаются в момент вывоза bat-файла. Выглядят они следующим образом: %1
, %2
, %3
и т.д.
Приведем пример для лучшего понимания:
@echo off
@echo First argument variables - : %1
@echo Second argument variables - : %2
@echo Third argument variables - : %3
pause
Во время запуска представленного выше «батника», передадим строку «Hello, user!». Результат будет продемонстрирован на картинке ниже.
Пример bat-файла: удаление ненужных файлов
Во время работы у пользователей часто остаются ненужные файлы, которые необходимо почистить. С этой целью отлично справляется корректно написанный «батник».
Например, у пользователя во время работы появляется много файлов с расширением .txt
в некотором каталоге и его подкаталогах, которые необходимо подчистить. Реализуем для этого случая простой «батник»:
@echo off
del /f /s /q C:\путь_к_каталогу\Example\*.txt
Разберем работу каждого флага:
/f
— данный флаг позволяет удалять все возможные файлы (даже те, что открыты только для чтения)./s
— флаг позволяет удалять файлы не только из каталога, но и его подкаталогах./q
— данный флаг убирает подтверждение удаления файлов.
Теперь создадим каталог Example
и подкаталог ExampleWithTXT
, а после добавим и в первый, и во второй файлы с расширением .txt
, чтобы проверить работоспособность созданного выше «батника»:
mkdir Example
cd Example
mkdir ExampleWithTXT
notepad Example1.txt
notepad Example2.txt
notepad Example3.txt
cd ExampleWithTXT
copy C:\путь_к_каталогу\Example\*.txt
После выполнения всех команд будет создан тестовый каталог Example
с тремя текстовыми файлами и подкаталогом ExampleWithTXT
. В последний были скопированы три текстовых файла из родительского каталога.
Теперь запустим bat-файл и посмотрим на результат. Он будет представлен на картинке ниже.
Все файлы с расширением .txt
были успешно удалены из каталога Example
и подкаталога ExampleWithTXT
.
Заключение
В инструкции был подробно описан процесс создания bat-файлов и дальнейшего взаимодействия с ними. Также были продемонстрированы основные команды и их описание. Следуя инструкции, пользователь сможет создать свой первый «батник» и успешно автоматизировать работу в операционной системе Windows.
Что такое bat-файл
Bat-файл – это текстовый файл, который содержит в себе набор команд для выполнения в командной строке. Такие файлы используются при работе с ОС Windows и обозначаются расширением .bat. Название bat-файла происходит от английского “batch file” – пакетный файл, продвинутые пользователи часто используют название “батник”.
Bat-файлы используются для автоматизации задач и выполнения ряда команд, без применения ввода данных в командную строку.
Зачем нужны bat-файлы:
- Автоматизация задач. Например, для повторяющихся типов действий: копирование, переименование файлов, создание резервных копий. Благодаря bat-файлам, можно запустить серию команд одним нажатием кнопки, что экономит время и не требует необходимость вводить однотипные команды вручную.
- Выполнение скриптов. Bat-файлы используют для выполнения скрипта на командном языке, например, CMD или PowerShell. Это позволяет создавать и запускать скрипты для выполнения сложных задач без необходимости запуска каждой команды по отдельности.
- Конфигурация системы. Bat-файлы могут использоваться для настройки и конфигурации операционной системы Windows, например, чтобы изменять системные переменные, устанавливать параметры безопасности, настраивать сетевые подключения.
Если вы ищите надежный выделенный сервер с операционной системой Windows, предлагаем воспользоваться услугой Windows VDS/VPS от RU-CENTER.
Как создать bat-файл
Для создания bat-файла понадобится устройство с ОС Windows и любой текстовый редактор. Следуйте инструкции:
- Откройте текстовый редактор, например, Блокнот или Visual Studio Code.
- Создайте в нем пустой файл.
- Запишите команду в том виде, как бы вы вводите ее в командную строку (каждую новую команду указывайте на отдельной строке).
- Добавьте любую необходимую логику или условные операторы, например, if-else или циклы, чтобы определить, какие команды будут выполняться в зависимости от определенных условий.
- Сохраните файл с расширением .bat. Для этого выберите Сохранить как и укажите тип файла Все файлы, добавьте расширение .bat в конце имени файла (например, myscript.bat).
- Создания bat-файла завершено.
Запуск bat-файла
Есть несколько способов запустить bat-файл:
- Найдите bat-файл с помощью Проводника и дважды щелкните на него. Это запустит файл. Команды в нем будут автоматически выполнены в командной строке.
- Из командной строки. Откройте командную строку, перейдите в директорию, где находится bat-файл, и введите имя файла. Кликните Enter, чтобы запустить bat-файл.
- С помощью ярлыка на рабочем столе. Щелкните правой кнопкой мыши на bat-файле, выберите Отправить, затем выберите Рабочий стол (создать ярлык). После создания ярлыка переместите его на рабочий стол и дважды щелкните на нем для запуска.
- Через Планировщик заданий. Можно настроить запуск bat-файла в определенное время или при определенных событиях с помощью Планировщика заданий. Для этого откройте Планировщик, создайте новое задание и укажите путь к bat-файлу в разделе Действие.
Независимо от способа запуска bat-файла, команды в файле будут выполнены последовательно в командной строке, в том же окне или в новом, в зависимости от настроек и команд в самом файле.
Синтаксис написания bat-файла
При написании bat-файла необходимо учитывать следующие правила:
- Комментарии в bat-файлах начинаются с символа REM (от английского remark – замечание) или :: (двойные двоеточия) и используются для пояснения кода.
- Команды в bat-файле записываются на отдельных строках и выполняются последовательно, начиная с верхней строки.
- При использовании переменных для хранения значений в bat-файле, их имена должны начинаться с символа %, и значения переменных устанавливаются с помощью оператора SET, например:
SET myVariable=Hello
echo %myVariable%
- В bat-файле можно использовать условные операторы, такие как IF и FOR, для выполнения команд в зависимости от определенных условий.
- С помощью оператора FOR можно создавать циклы для выполнения команд несколько раз или по списку значений.
Настройка планировщика заданий (периодический запуск)
Чтобы настроить запуск bat-файла в заданное время используйте планировщик задач Windows:
- Откройте Планировщик, нажав Win + R, введите taskschd.msc и нажмите Enter.
- Нажмите на Создать задачу в правой части окна.
- Во вкладке Основные введите имя задачи и описание (необязательно), нажмите Далее.
- Во вкладке Действия нажмите на Создать, в выпадающем меню выберите Запуск программы.
- В строке Программа/скрипт укажите путь к bat-файлу, который вы хотите запускать. Кликните на кнопку Обзор, чтобы найти bat-файл на компьютере.
- Настройте остальные параметры по вашему усмотрению: вы можете указать условия запуска, триггеры, параметры задачи и т.д.
- Когда все настройки сделаны, нажмите ОК, чтобы сохранить задачу.
Теперь ваш bat-файл будет запускаться автоматически в заданное время или по указанным условиям заданным в планировщике задач.
Bat-файл: основные команды при написании
Приведем несколько основных команд, которые можно использовать при написании bat-файла:
- echo – для вывода текста или переменных в командную строку или в файл.
- set – для определения или изменения значения переменной.
- if – для выполнения команд в зависимости от определенных условий.
- for – для создания циклов и повторного выполнения команд.
- call – для вызова другого bat-файла из текущего.
- pause – для остановки выполнения скрипта и ожидания, пока пользователь не нажмет клавишу.
- rem – для добавления комментариев в скрипт. Комментарии игнорируются интерпретатором bat-файлов.
- cd – для перехода в другой каталог.
- del – для удаления файлов.
- copy – для копирования файлов.
Bat-файл: переменные
При написании bat-файла также применяют переменные, которые используются для хранения и управления значениями данных. Они позволяют создавать гибкие скрипты, облегчают автоматизацию повторяющихся задач и упрощают изменение значений в различных частях скрипта.
Чтобы использовать переменные в bat-файлах, следует сначала задать ее с помощью команды set. Значение переменной указывается с помощью символа %.
Например:
set NAME=Ivan
echo My name is %NAME%
В этом примере значение переменной NAME задается как Ivan, и далее выводится на экран при помощи команды echo
В bat-файлах можно использовать несколько типов переменных:
- Строковые переменные:
set NAME=value
- Числовые переменные:
set /a NUMBER=5
- Параметры командной строки:
set INPUT=%1
- Системные переменные:
set OS_VERSION=%OS%
- Временные переменные:
set CURRENT_DATE=%DATE%
Примеры bat-файлов
- Пример bat-файла, выводящего «Hello, World!»:
@echo off
echo Hello, World!
- Пример bat-файла, запрашивающего у пользователя имя и выводящего приветствие:
@echo off
set /p name=Введите ваше имя:
echo Привет, %name%!
- Пример bat-файла, выполняющего математические операции:
@echo off
set /a num1=5
set /a num2=2
set /a sum=%num1% + %num2%
set /a product=%num1% * %num2%
echo Сумма: %sum%
echo Произведение: %product%
- Пример bat-файла, выполняющего цикл для перебора файлов в каталоге:
@echo off
for %%i in (*.txt) do (
echo Файл: %%i
)
- Пример bat-файла, проверяющего наличие файла и выполняющего определенные действия:
@echo off
if exist myfile.txt (
echo Файл найден!
del myfile.txt
) else (
echo Файл не найден!
)
Заключение
Bat-файлы весьма гибкие и простые в использовании. Они позволяют выполнять различные задачи, такие как копирование и перемещение файлов, создание и удаление папок, запуск программ и многое другое.
С помощью bat-файлов можно экономить время и упрощать выполнение повторяющихся задач. При их правильном использовании можно значительно повысить эффективность и продуктивность работы пользователя.
В статье мы расскажем, как создать BAT-файл, а также как заполнить и запустить его.
Что такое BAT-файл
BATCH, или BAT, — это текстовый файл, который содержит список команд для интерпретатора командной строки Windows. Изначально «батники» назывались BATCH-файлами, однако со временем они получили название BAT, так как чаще всего они имеют расширение .bat (иногда встречается .cmd).
При создании и настройке BAT-файла необходимо учитывать некоторые особенности:
- Bat-файл будет работать только на операционной системе Windows.
- Для работы с файлом потребуется текстовый редактор: подойдет стандартный Блокнот. Однако для крупного списка команд рекомендуем использовать редактор, в который встроена подсветка синтаксиса: например, Notepad++.
Как создать BAT-файл
Базовые инструменты, которые нужны для создания BAT-файла, по умолчанию встроены в любой версии ОС Windows. Мы опишем процедуру создания тестового файла через Блокнот.
Чтобы создать BAT-файл:
-
1.
В поисковой строке наберите Блокнот и нажмите Открыть:
-
2.
Добавьте строки:
@echo off echo Hello! How are you? pause
-
3.
Выберите раздел Файл и кликните Сохранить как:
-
4.
Откройте папку, в которую нужно сохранить файл. В строке «Тип файла» выберите Все файлы. Укажите название файла вместе с расширением .bat и нажмите Сохранить:
Если файл сохранился с расширением .txt
Функционал Windows позволяет исправить расширение. Для того чтобы сделать это:
-
1.
Перейдите в папку, в которой сохранен BAT-файл.
-
2.
Выберите вкладку Вид и отметьте галочкой пункт Расширения имен файлов:
-
3.
Правой кнопкой мыши кликните по названию файла и нажмите Переименовать. Измените расширение файла на .bat и нажмите клавишу Enter:
Готово, вы создали BAT-файл.
Какие команды используются в тексте BAT-файла
Для написания батника можно использовать большое количество команд. Чаще всего используются следующие команды:
Команда | Аргумент | Действие |
---|---|---|
start | Путь к файлу или команда | Начать выполнение программы или команды в новом окне |
pause | Приостановить выполнение файла | |
cd | Название каталога или путь к нему | Перейти в указанный каталог |
md | Название каталога | Создать каталог |
copy | Имена файлов и название каталога, в который нужно их копировать | Скопировать файлы в указанный каталог |
move | Текущий и конечный путь к файлу | Переместить файл из одного каталога в другой |
del | Название файла или папки | Удалить указанный объект |
call | Путь к исполняемому файлу | Запустить пакетный файл из другого файла |
title | Желаемый заголовок | Изменить заголовок окна |
color | Цвет фона и текста (цифра или буква) | Изменить цвет фона и текста |
exit | Завершить выполнение пакетного файла |
Как объявить переменную в BAT-файле
Переменная — это часть физического или виртуального пространства, которая наполнена данными определенного типа. Чтобы задействовать какую-либо переменную в бат-файле, нужно ее объявить. Это можно сделать с помощью команды set:
@echo off
set example=Hello!
echo %example%
pause
Важно: не ставьте пробел после знака равенства — иначе код не будет работать.
Если вы хотите объявить переменную в числовом формате, используйте флаг /a:
@echo off
set /a example=2*2
echo %example%
pause
Если флаг /a не добавлен, переменной присваивается полное значение после знака равенства.
Как оставлять комментарии в BAT-файле
Если вы заполняете BAT-файл и планируете показать код другому пользователю, рекомендуем оставлять комментарии к командам. Комментарий включает в себя объяснение, как работает та или иная часть кода.
Чтобы BAT-файл работал корректно, комментарии нужно начинать со специальных команд или символов. Например, однострочный комментарий можно оставить при помощи команды rem:
Вместо comment_text укажите текст комментария.
Другой способ оставить однострочный комментарий — это начать его с двойного двоеточия:
Вместо comment_text укажите текст комментария.
Также вы можете оставить комментарий, который займет более чем одну строку. Для этого можно использовать команду goto:
goto label_name
===
comment_text
or_ASCII-art
===
:label_name
Где:
- comment_text or_ASCII-art — укажите текст комментария,
- label_name — название метки комментария.
Обратите внимание: все комментарии, которые созданы с помощью goto, должны иметь разные метки.
Примеры BAT-файлов
Корректно заполненные «батники» могут облегчить работу с ОС и файловой системой. Ниже мы добавили примеры BAT-файлов, с помощью которых вы сможете выполнить некоторые действия.
Обновить IP-адреса
Иногда нужно вручную обновить IP-адреса в сетевом интерфейсе. Для этого вы можете открыть командную строку и ввести команду:
Однако после выполнения команды на экране отображается длинный вывод: это не всегда удобно. Однако в BAT-файле можно направить вывод этой команды в текстовый файл. Для этого создайте новый файл и добавьте в него строки:
rem Отключаем отображение текущей команды
@echo off
rem Переводим вывод выполнения в файл, вывод в командной строке исчезнет
ipconfig /renew > C:\Users\Username\OneDrive\Документы\filename.txt
Вместо C:\Users\Username\OneDrive\Документы\filename.txt укажите путь к файлу, в который нужно записать вывод команды.
Если вы хотите, чтобы вывод команды не записывался и не выводился на экран, в качестве пути укажите NUL:
rem Отключаем отображение текущей команды
@echo off
rem Переводим вывод выполнения в файл, вывод в командной строке исчезнет
ipconfig > NUL
Также вы можете оставить пояснительные сообщения для пользователя и скорректировать кодировку BAT-файла для интерпретатора. Итоговый код будет иметь следующий вид:
@echo off
chcp 1251 > C:\Users\Username\OneDrive\Документы\filename.txt
echo Новые адреса распределяются. Пожалуйста, подождите...
ipconfig /renew > C:\Users\Username\OneDrive\Документы\filename.txt
echo Готово. Ознакомиться с результатами можно в C:\Users\Username\OneDrive\Документы\filename.txt
pause
Где:
- chcp 1251 — кодировка, которую требует ваш интерпретатор,
- C:\Users\Username\OneDrive\Документы\filename.txt — путь к файлу, в который записывается вывод команды.
Переименовать файлы
Существует несколько способов переименования файлов. Первый — это переименование одного файла с полным указанием названия:
rename old_name.txt new_name.txt
Где:
- old_name.txt — прежнее имя файла,
- new_name.txt — новое имя файла.
Второй способ — переименование файлов по маске. Предположим, что в каталоге есть файлы с названиями oldname1.txt, oldname2.txt и oldname3.txt. Вам нужно переименовать их на newname1.txt, newname2.txt и newname3.txt. Вы можете это сделать за одну строку с помощью команды:
rename old_name* new_name*
Если вы хотите переименовать файлы только с определенным расширением, можно добавить их в состав команды:
rename old_name*.txt new_name*.txt
Удалить все ненужные файлы
Существуют программы, при работе с которыми создаются новые файлы (чаще всего текстовые). По мере того, как накапливаются эти файлы в системе, они могут потерять актуальность.
Чтобы очистить дисковое пространство, вы можете удалять эти файлы вручную. Однако если их стало слишком много, рекомендуем использовать BAT-файл.
Создайте новый файл и добавьте в него следующие строки:
@echo off
del /f /s /q C:\Users\Username\OneDrive\Документы\logs\*.txt
Где:
- /f — флаг, который позволяет удалить все файлы вне зависимости от прав доступа;
- /s — флаг, который позволяет удалить все файлы в выбранной папке и всех ее подпапках;
- /q — флаг, который убирает подтверждение удаления файлов;
- C:\Users\Username\OneDrive\Документы\logs\ — путь к каталогу, в котором нужно удалить файлы;
- *.txt — маска, которая указывает на удаление всех файлов с расширением .txt в выбранном каталоге.
Как запустить BAT-файл через командную строку
Запуск BAT-файла выполняется через командную строку. Это можно сделать разными способами:
- автоматически,
- вручную,
- в скрытом режиме,
- по расписанию.
Ниже мы опишем каждый из этих способов.
Как выполнить автоматический запуск
-
1.
Кликните по файлу правой кнопкой мыши.
-
2.
Выберите Запуск от имени администратора:
Готово, вы выполнили автозапуск файла.
Как запустить файл вручную
-
1.
Нажмите Win + R.
-
2.
Введите cmd и кликните OK:
-
3.
Введите полный путь к нужному файлу и нажмите Enter.
Готово, вы запустили файл вручную.
Как выполнить скрытый запуск
-
1.
Откройте текстовый редактор.
-
2.
Добавьте строки:
Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "C:\Users\Username\OneDrive\Документы\Scripts\test.bat" & Chr(34), 0 Set WshShell = Nothing
Вместо C:\Users\Username\OneDrive\Документы\Scripts\test.bat укажите путь к исполняемому файлу.
-
3.
Сохраните файл с расширением .vbs.
-
4.
Запустите файл, созданный на предыдущем шаге.
Готово, вы настроили скрытый запуск.
Как запускать BAT-файл по расписанию
Для запуска бат-файла по расписанию необходимо использовать программу Планировщик заданий. Для этого:
-
1.
Нажмите Win + R.
-
2.
Введите taskschd.msc и кликните OK:
Batch file -
3.
Выберите Создать простую задачу:
-
4.
Укажите имя задачи и нажмите Далее:
-
5.
Выберите периодичность запуска и кликните Далее:
Затем введите время, в которое нужно выполнять задание. После этого выберите Далее:
-
6.
Выберите действие Запустить программу. Затем кликните Далее:
-
7.
Укажите путь до вашего скрипта (бат-файла) и нажмите Далее:
-
8.
Проверьте все параметры запуска и кликните Готово:
Готово, вы настроили запуск по расписанию.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊
👍
Файлы с расширением .bat часто встречаются в папках Windows. В статье расскажем, что они собой представляют, как правильно их открывать, редактировать, а также преобразовывать в другие форматы.
Определение
Файл с расширением .bat – это исполняемый файл Windows. По сути это обыкновенный текстовый файл, в котором записаны разные команды. Они используются для повторяющихся задач, или для осуществления последовательного запуска групп сценариев.
Файлы bat часто также называют пакетными или командными, кроме того вы можете встретить следующие их обозначения: исполняемые сценарии, пакетные программы, а также сценарии оболочки. Расширение .bat нередко заменяется .CMD.
Практически в любом ПО применяются файлы bat для всевозможных целей, в том числе создания копий или удаления файлов, начала или завершения работы процессов.
Хотя все команды, требуемые для выполнения определенной задачи или внесения правок в системные настройки Windows 10 можно вводить вручную, пакетный файл упрощает работу. В частности ускоряет повторный ввод команд, снижая затраты времени и, позволяя избегать ошибок.
Как открывать
Если вы собираетесь открыть файл .bat, будьте осторожны. Работа с ним может угрожать как вашим личным документам, так и ключевым системным файлам.
Хотя Windows сразу распознаёт файлы .bat, как исполняемые, они всё ещё представляют собой текстовые команды. То есть их можно изменить в любом редакторе текста, в частности, в Блокноте. Чтобы сделать это, щелкните по файлу правой кнопкой мыши, после чего в меню укажите «Показать дополнительные параметры» > «Изменить».
В редакторе отобразится код, из которого состоит файл. Для примера возьмём файл, служащий для очистки буфера обмена. Внутри него расположен следующий текст:
cmd /c «echo off | clip»
А теперь рассмотрим другой с командой ping. С её помощью можно проверить, способен ли компьютер подключиться к роутеру с указанным IP-адресом:
ping 192.168.1.1 pause
Аренда облачного сервера для разработки, хостинга, обученияПодробнее
Как использовать
Чтобы использовать bat-файл в Windows, достаточно дважды кликнуть по нему, не потребуется никакого специального софта или инструментов.
Например, если вы запустите файл с командой, которая приведена в примере выше (cmd /c «echo off | clip»), то сразу же будет выполнена очистка буфера обмена. Вот почему важно быть внимательными при запуске файлов .bat. Никогда не запускайте неизвестные файлы с таким расширением.
Как создать
Вы можете сделать собственный файл в текстовом редакторе. Для этого откройте, например, Блокнот и запишите нужную команду, например, одну из приведённых выше. Кликните меню «Файл», найдите опцию «Сохранить как». Дальше нужно выбрать имя и расширение.
Помимо .bat можно выбирать .cmd или .btm, они будут работать точно так же.
Как изменить
Как вы могли заметить, код bat-файла никаким образом не скрыт, то есть его можно без проблем редактировать. Из-за того, что некоторые команды (к примеру, del ) могут причинить вред вашим личным данным, имеет смысл преобразовать bat в формат EXE . Он станет больше напоминать файл приложения.
Чтобы это сделать, можно применять инструменты командной строки. Скрипт:
@ECHO OFF
ECHO Make EXE From BAT
ECHO Written by: Jason Faulkner
ECHO SysadminGeek.com
ECHO.
ECHO.
REM Usage:
REM MakeExeFromBat BatFileToConvert
[IncludeFile1] [IncludeFile2] [...]
REM
REM Required Parameters:
REM BatFileToConvert
REM Source batch file to use to produce the output Exe file.
REM
REM Optional Parameters:
REM IncludeFile
REM Additional files to include in the Exe file.
REM You can include external tools used by the batch file so they are available on the executing machine.
SETLOCAL
REM Configuration (no quotes needed):
SET PathTo7Zip=
REM ---- Do not modify anything below this line ----
SET OutputFile="%~n1.exe"
SET SourceFiles="%TEMP%MakeEXE_files.txt"
SET Config="%TEMP%MakeEXE_config.txt"
SET Source7ZFile="%Temp%MakeEXE.7z"
REM Remove existing files
IF EXIST %OutputFile% DEL %OutputFile%
REM Build source archive
ECHO "%~dpnx1" > %SourceFiles%
:AddInclude
IF {%2}=={} GOTO EndInclude
ECHO "%~dpnx2" >> %SourceFiles%
SHIFT /2
GOTO AddInclude
:EndInclude
"%PathTo7Zip%7za.exe" a %Source7ZFile% @%SourceFiles%
REM Build config file
ECHO ;!@Install@!UTF-8! > %Config%
ECHO RunProgram="%~nx1" >> %Config%
ECHO ;!@InstallEnd@! >> %Config%
REM Build EXE
COPY /B "%PathTo7Zip%7zsd.sfx" + %Config% + %Source7ZFile% %OutputFile%
REM Clean up
IF EXIST %SourceFiles% DEL %SourceFiles%
IF EXIST %Config% DEL %Config%
IF EXIST %Source7ZFile% DEL %Source7ZFile%
ENDLOCAL
Ещё один способ заключается в использовании инструмента IExpress, который по умолчанию встроен в Windows. Также можно конвертировать EXE-файл в MSI через тестовую версию EXE в MSI Converter Pro.
Также сработает инструмент командной строки NSSM (распространяется бесплатно), он позволит запустить BAT-файл в роли службы Windows.
PowerShell Scriptomatic умеет трансформировать код из bat-файла в сценарий PowerShell.
Также можно вручную переписать расширение файла .bat, заменив на другое, которое умеет распознавать компьютер. Есть вероятность, что файл с заменённым расширением будет работать. Так как файлы bat — это обыкновенный текст, проще всего переименовать расширение в .TXT. Это позволит сразу открывать их в текстовом редакторе.
Не обязательно менять расширение файла с bat на TXT вручную, можно запустить командный файл в Блокноте, как мы делали для редактирования, а потом пересохранить его в другой файл, выбрав в списке расширение .TXT.
Заключение
Файлы .bat могут значительно облегчить работу, однако с ними стоит быть внимательными и помнить, что это исполняемые файлы. Запускайте только проверенные.