Раздел помощи SpaceWeb

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

16 май, 2024

Что такое bat-файлы

BAT-файлы или «батники» – это текстовые файлы, которые содержат ряд команд, предназначенных для выполнения операционной системой Windows. Расширение .bat или .cmd указывает на то, что файл является скриптом, который автоматически выполняет определённые задачи. Эти файлы часто используются для автоматизации рутинных задач: например, для управления файлами, запуска программ и обслуживания системы.

Работа с bat-файлами

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

  1. Компьютер с установленной операционной системой Windows, так как BAT-файлы поддерживаются только в этой ОС.
  2. Текстовый редактор для написания и редактирования скриптов. Хотя можно использовать стандартный Блокнот Windows, рекомендуется выбрать редактор с функцией подсветки синтаксиса, например, Notepad++. Это упростит визуальное различие команд и структур данных в коде, что существенно облегчит процесс написания и отладки скрипта.

Создание bat-файлов

  1. Откройте текстовый редактор и создайте новый файл. Если вы используете Notepad++, можете просто зажать сочетание клавиш Ctrl+N или выбрать опцию Новый в разделе «Файл». 

  1. Начните с базовых команд. Простой пример BAT-файла, который выводит текст и ожидает нажатия клавиши перед закрытием, может выглядеть так
@echo off 
echo Hello world! 
pause 

Где:

  • «@echo off» команда говорит Windows не выводить последующие команды в окне командной строки, делая вывод чище.
  • «echo Hello world!» выводит строку «Hello world!» в командной строке.
  • «pause» заставляет скрипт остановиться и вывести сообщение «Нажмите любую клавишу для продолжения...», что позволяет пользователю увидеть результаты работы скрипта перед его закрытием.
  1. Сохраните файл с расширением .bat. Для этого в верхнем меню наведите мышь на раздел «Файл» и выберите Сохранить как. 

Например, вы можете сохранить файл как helloworld.bat. Важно убедиться, что при сохранении файла в типе файла выбрано «Batch file», а не «Текстовые документы (*.txt)», чтобы избежать автоматического добавления расширения .txt к имени файла.

Запуск bat-файлов

Способ 1. Запуск bat-файла через проводник

  1. Откройте Проводник Windows и перейдите к директории, где находится ваш BAT-файл.

  1. Дважды кликните по файлу левой кнопкой мыши. Скрипт выполнится с теми правами пользователя, под которым вы вошли в систему. 

Если скрипт завершается слишком быстро, чтобы вы могли увидеть результаты, добавьте команду pause в конец скрипта (если не сделали этого ранее).

  1. Если файл защищён, то откройте его с правами администратора. Для этого щёлкните по файлу правой кнопкой мыши и выберите опцию «Запуск от имени администратора». 

Этот способ подходит, если после запуска BAT-файла не ожидается никакого визуального ответа. Если же нужно получить какое-либо сообщение или результат выполнения команд, следует запустить bat из командной строки.

Способ 2. Запуск bat-файла через командную строку

  1. Чтобы открыть командную строку, нажмите комбинацию клавиш WIN+R.
  2. В появившемся окне «Выполнить» введите cmd и нажмите Enter.

  1. В открывшемся окне командной строки перейдите к расположению нужного файла:
cd C:\path\to\your\file

Например:

cd C:\Users\lissa\Downloads

  1. Введите имя вашего BAT-файла и нажмите Enter, например:
helloworld.bat

После этих действий BAT-файл начнет выполнение указанных в нем команд и выведет результаты, если это предусмотрено скриптом.

Запуск bat-файлов по расписанию

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

  1. Для открытия «Планировщика заданий», нажмите клавиши WIN+R, чтобы вызвать окно выполнения, введите «taskschd.msc» и нажмите Enter.

Так вы откроете главное окно Планировщика.

  1. В этом окне следует перейти к разделу «Действия» и выбрать «Создать простую задачу…», что запустит мастер создания задач. 

В процессе создания задачи вам будет предложено выполнить несколько шагов:

  1. Создание простой задачи. На этом этапе вы задаёте имя и описание вашей задачи, чтобы легче было управлять ею в будущем.

  1. Триггер. Эта вкладка позволяет определить, как часто и когда именно должен запускаться ваш BAT-файл. Вы можете настроить задачу на ежедневный, еженедельный запуск или выбрать другие условия.

  1. Действие. Здесь указывается, что именно должно произойти при срабатывании триггера. Выберите опцию «Запустить программу», затем укажите путь к вашему BAT-файлу.

  1. Завершение. На последней вкладке вы увидите сводку всех введённых данных для проверки перед сохранением задачи.

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

Синтаксис написания bat-файла

Вот основные принципы написания BAT-файлов, которые помогут вам избежать ошибок и оптимизировать процесс выполнения скриптов:

  1. Новая команда – новая строка. Каждая команда в BAT-файле должна начинаться с новой строки, чтобы обеспечить четкость и правильное выполнение.
  2. Последовательное выполнение. Команды в BAT-файле выполняются последовательно, от первой до последней. Однако можно изменять порядок выполнения с помощью условий и переходов (например, команды goto, о которой мы расскажем позже).  
  3. Использование кавычек для путей. Для избежания ошибок при наличии пробелов в путях и именах файлов, всегда заключайте их в кавычки. Например:
"‎C:\Downloads\helloworld.bat"‎

  1. Подтверждение перед выполнением. Если при выполнении команды требуется подтверждения пользователя (например, del или format), вы можете перед командой указать /Y для автоматического подтверждения, например: 
format /Y helloworld.bat.

  1. Типы команд. Команды делятся на встроенные (например, copy, del) и внешние (.exe, .cmd или другие .bat файлы). Встроенные команды обрабатываются интерпретатором «cmd.exe», внешние требуют запуска исполняемого файла.
  2. Отключение отображения команд. Чтобы скрыть команды от пользователя во время выполнения BAT-файла, используйте команду @echo off в начале файла. Это создаст более чистый вид вывода.

Переменные в bat-файле

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

Типы переменных в BAT-файлах

  1. Локальные переменные. Переменные, которые определены внутри BAT-файла и доступны только в рамках этого файла. Они создаются с помощью команды set и используются в том же скрипте.
  2. Системные переменные. Предопределенные переменные, которые предоставляют информацию о системе или контролируют поведение командной оболочки. Например, %PATH%, %TEMP%, %USERNAME%.
  3. Параметры командной строки (или переменные аргумента). Переменные, которые передаются скрипту при его запуске. Обозначаются как %1, %2, %3 и т.д., где %1 – это первый аргумент, %2 – второй и так далее.

Создание и использование переменных

Чтобы создать или изменить переменную, используйте команду set. Примеры:

set name=Ivan Ivanov
set location=Moscow
echo %name% lives in %location%. 
pause

Где %name% и %location% – это переменные, значения которых выводятся с помощью echo.

Вывод:

При создании переменных в BAT-файлах вы можете использовать флаг /a для объявления числовых переменных, что позволяет проводить арифметические операции при их инициализации. Например:

@echo off set /a example=2*3 
echo %example% 
pause 

В этом случае bat-переменная «example» будет содержать результат выражения 2*3, то есть 6. Если флаг /a не используется, то значение переменной интерпретируется как строка.

Дополнительно, в BAT-файлах можно использовать переменные, значения которых передаются через аргументы при вызове файла. Эти переменные обозначаются как %1, %2, %3 и так далее, где %1 – это первый аргумент, %2 – второй, и так далее. 

Вот пример скрипта, который использует аргументы командной строки:

@echo off 
@echo First argument variables - : %1 
@echo Second argument variables - : %2 
@echo Third argument variables - : %3 
pause 

Когда вы запустите этот скрипт и передадите ему строки, например, Hello world!, эти строки будут отображаться как значения соответствующих аргументных переменных в выводе командной строки. Это делает скрипты более гибкими, так как позволяет пользователю взаимодействовать с программой и передавать ей данные на лету.

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

Комментарии в bat-файле

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

Для чего нужны комментарии:

  • Комментарии помогают объяснить структуру и назначение кода, делая его более понятным для других разработчиков или для вас самого в будущем.
  • Комментарии могут использоваться для временного отключения части кода во время отладки. Её просто на время делают комментарием.
  • Комментарии могут служить для создания документации к коду, объясняя его работу и особенности.

Основной синтаксис комментариев

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

Использование команды REM

Самый распространённый способ добавления комментариев в BAT-файлы – использование команды REM (сокращение от английского слова «remark» –примечание). Эта команда указывает интерпретатору командной строки игнорировать все, что следует за ней на той же строке. 

Пример:

REM Это комментарий, который объясняет следующую команду 
echo Это пример команды 

Использование двоеточия (:)

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

Пример:

: Это комментарий в bat-файле
echo Пример выполнения команды 

Двоеточие работает, потому что интерпретатор рассматривает все, что следует за ним на той же строке, как метку, к которой не предполагается переход. Однако, если использовать goto для перехода к такой метке-комментарию, это может привести к ошибкам.

Пример с использованием goto 

@echo off 
REM Начало скрипта 
:start 
echo Это начало цикла 
pause 
goto start 
REM Скрипт постоянно будет возвращаться к метке start 

В этом примере используется REM для объяснения, что происходит в скрипте, в то время как goto start организует бесконечный цикл, постоянно возвращая выполнение к метке start.

Комментарии с REM предпочтительнее, так как они чётко отделены от исполняемого кода и не могут быть ошибочно интерпретированы как метки для goto. Они делают код более читаемым и безопасным, особенно в больших или сложных скриптах.

Как сделать максимально полезные комментарии:

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

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

Основные bat-команды для написания файлов
 

Команда

Описание

echo

Выводит текст или значение переменной на экран.

set

Назначает или изменяет значение переменной.

setlocal

Начинает локальный блок переменных, изменения ограничены текущим скриптом.

endlocal

Заканчивает локальный блок переменных.

pause

Приостанавливает выполнение скрипта и выводит сообщение для пользователя.

goto

Переходит к метке в скрипте.

:label

Определяет метку для переходов goto.

if

Выполняет условное ветвление в скрипте.

for

Итерирует через ряд элементов (файлы, числа).

rem

Добавляет комментарий, который не выполняется.

del

Удаляет один или несколько файлов.

copy

Копирует один или несколько файлов в новое место.

move

Перемещает файлы и директории.

mkdir или md

Создает новую директорию.

rmdir или rd

Удаляет директорию.

start

Запускает отдельное окно для новой программы или команды.

exit

Закрывает окно командной строки.

call

Вызывает другой скрипт или пакетный файл в контексте текущего скрипта.

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

Пример 1. Копирование файлов в новую директорию

Этот скрипт создаёт новую директорию и копирует в неё файл:

@echo off
mkdir C:\new_folder
copy C:\example.txt C:\new_folder\example.txt
echo Файлы успешно скопированы!
pause
 

Где:

  • «mkdir C:\new_folder» создаёт новую папку на диске C.
  • «copy C:\example.txt C:\new_folder\example.txt» копирует файл «example.txt» в новую папку.
  • «echo Файлы успешно скопированы!» выводит сообщение о завершении операции.

Пример 2. Запуск программы с параметрами

Этот скрипт запускает Notepad++ и открывает определённый текстовый файл:

@echo off
start notepad.exe C:\example.txt
echo Notepad запущен!
pause

Где «start notepad.exe C:\example.txt» открывает «notepad.exe» и загружает файл «example.txt».

Пример 3. Условное выполнение команд

Этот скрипт проверяет, существует ли файл, и выполняет команды в зависимости от результатов:

@echo off
if exist C:\example.txt (
    echo Файл существует.
    del C:\example.txt
    echo Файл удален.
) else (
    echo Файл не найден.
)
pause

Где:

  • «if exist C:\example.txt» проверяет наличие файла.
  • Если файл существует, он удаляется, и выводится соответствующее сообщение.
  • Если файла нет, выводится сообщение «Файл не найден».

Пример 4. Простой логин

Этот скрипт запрашивает имя пользователя и проверяет его:

@echo off
set /p username=Введите ваше имя пользователя: 
if %username%==admin (
    echo Добро пожаловать, администратор!
) else (
    echo Доступ ограничен.
)
pause

Где:

  • «set /p» позволяет пользователю ввести значение переменной.
  • «if %username%= =admin» проверяет, равно ли введенное имя «admin».

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

В этом руководстве мы рассказали вам, как правильно запустить bat-файл и как с ним работать.