Дисклеймер
Мне 12 и я сам в этой теме плохо шарю, т.к. инфы в инете мало. Пж, без хейта.
Что такое батники и с чем их едят
Пакетный файл или в простонародье батник — это файл, который запускает командную сроку или сокращенно cmd, которая построчно интерпретирует команды, записанные в нем. Подробнее смотрите на https://ru.wikipedia.org/wiki/Пакетный_файл.
Первая программа и основные команды
Чтобы сделать батник, нужно сначала создать текстовый файл с именем test и изменить расширение c .txt на .bat. О том, как можно это сделать, читайте здесь: https://remontka.pro/file-extensions. У вас должен появиться файл с такой иконкой:
Нажимаем на него ПРАВОЙ кнопкой мыши. Должно появиться диалоговое окно. Нажмем «Открыть». Должен открыться блокнот, пишем:
@echo off
echo Hello world!
pause
В 1-ой сроке («@echo off») префикс ‘@ ‘ означает, что команда не будет выведена на экран(попробуйте его убрать ), сама же команда (echo) выводит текст следующий за ней(см. строку 2), НО, если подать строку «off», все последующие команды будут действовать так, как будто перед ними стоит префикс ‘@’, «echo on», соответственно, выключает этот режим. Чтобы вывести символ «%», его нужно дублировать, потом поймете почему :-), для вывода пустой строки поставьте «.» после «echo»
В 3-ей строке команда выводит строку «press any key to continue . . .» (если у вас русский язык — «Для продолжения нажмите любую клавишу . . .») и останавливает программу до нажатия любой клавиши.
Наводим красоту
Команда «rem»
не делает ничего и служит комментарием к коду
rem Это самая лучшая прога в мире!!!!!
Код включает русские символы и другие из ascii(например: «╬▓☼», можно скопировать с http://pascalguru.ru/psevdograf.html), иначе ascii символы превратятся в кракозябры:
chcp 65001
Следующий код код работает, как команда «pause», но ничего не выводит на экран и не реагирует на нажатие клавиш(я потом объясню, как это работает).
:m
goto m
А этот — меняет заголовок окна на «name»
title name
Эта команда меняет цвет фона и текста, вместо a и b можно поставить любые шестнадцатеричные цифры(команда не сработает если a = b) см. таблицу ниже. Запись c одной буквой «а» аналогично записи «0a»
color ab
Эта — досрочно завершает программу
exit
Переменные
Создать переменную можно с помощью команды set, синтаксис объявления следующий: P.S. это не совсем переменные, это скорее макросы (для тех к кто не знает C/C++ это именованный кусочек кода, имя которого заменяется на этот кусочек кода)
set a=Hello world
Если после «set» добавить флаг «/a» то:
-
Переменной задастся значение выражения, а не его текст, например:
set a=2+2 > 2+2 set /a a=2+2 > 4
-
Переменной можно присвоить ТОЛЬКО числовое значение
Чтобы обратиться к переменной, нужно окружить ее символами «%» (так %name%), пример кода:
set /a a=%b%+%b%
echo %a%
Подробнее о переменных
Если добавить флаг «/p», то выводиться значение после символа «=», а переменной задается введенное значение(запустите этот код:)
@echo off
set /p a=Enter str
echo %a%
pause
следующий код вырезает строку от символа номер «a» до символа номер «b» НЕ включительно(счет идет с нуля, отрицательные числа — счет с конца от единицы). Если аргумент один, то он присваивается числу «b», а «a» = 0
%str:~a,b%
следующий заменяет подстроки «a» в строке на строки «b»:
%str:a=b%
Циклы и условия
Цикл можно создать с помощью команды «for», синтаксис следующий:
for %%i in (a b c) do (
cmd
)
или такой
for %%i in (a b c) do cmd
(a b c) это список (не обязательно из 3-х элементов) и переменная %%i (нужно ставить символ после процентов, а не между) по очереди проходит по значениям в списке
Если добавить флаг «/l», то переменная в первый раз будет равна «a». К ней каждый раз будет прибавляться «b», пока она не станет больше «c»(тут размер ДОЛЖЕН равняться 3)
запустите этот код, тут все наглядно
@echo off
chcp 65001
echo Начало
for /l %%i in (1 1 10) do echo %%i
echo Конец
pause
Команда if выполняет код, если условие верно (или если поставить not после if, когда НЕ верно), вот операторы сравнения:
P.S. строки нужно брать в кавычки «%str%»==»Hello»
equ(==) |
= |
neq |
≠ |
lss |
< |
leq |
≤ |
gtr |
> |
geq |
≥ |
пример кода:
@echo off
set /p a=Enter number
if a gtr 0 echo positive else\
if a equ 0 echo 0 else echo negative
pause
в 3-ей строке, если «a» > 0 выводиться «положительный»(на английском ), если равен — 0,в 4-ой если меньше — «отрицательный»
символ «\» означает, что команда продолжается на следующей строке
Метки
Создадите файл start.bat в той же папке, где и test.bat, напишите в нем:
test.bat 2 2
Мы запустили батник, НО подали в него аргументы 2 и 2. Чтобы к ним обратиться, нужно написать %n, где «n» — номер аргумента, считая от одного(не от нуля), вот код, считающий сумму первого и второго аргумента (их может быть от нуля до 9-и):
@echo off
set /a res=%1+%2
echo res
pause
Метка — это именованное место в коде, она создается с помощью команды «:name»
А этот переходит на метку :m и продолжает выполнение, начиная с нее
rem куча кода
:m
rem куча кода
goto m
rem куча кода
И в завершение статьи, хочу сказать о команде call. Она превращает в последующей команде «%%» в «%», а переменные — на их значения. Пример использования:
call echo %%str:~%a%,%b%%%
Batch script is a type of scripting language used in Windows operating systems to automate repetitive tasks, perform system administration functions, and execute a series of commands. The echo command is one of the most commonly used commands in batch scripting, used to display text or messages on the console or in a text file.
In batch scripting, the echo command can be used to display a message, variable value, or system information on the console. The command can be followed by a message or text string enclosed in double quotes. For example, echo “Hello, World!” will display the message “Hello, World!” on the console.
The echo command can also be used to display the value of a variable. To display the value of a variable, the variable name must be preceded by a percent sign (%) and enclosed in double quotes. For example, if a variable named username contains the value “John”, the command echo “Welcome, %username%” will display the message “Welcome, John” on the console.
Additionally, the echo command can be used to redirect the output to a file, rather than displaying the message on the console. This can be done by using the > operator followed by the name of the file. For example, echo “Hello, World!” > output.txt will create a file named “output.txt” and write the message “Hello, World!” to the file.
In most of the modern and traditional operating systems, there are one or more user interfaces (e.g. Command Line Interface(CLI), Graphical User Interface(GUI), Touch Screen Interface, etc.) provided by the shell to interact with the kernel. Command Prompt, PowerShell in Windows, Terminal in Linux, Terminology in Bodhi Linux, and various types of Terminal Emulators [also called Pseudo Terminals] (e.g. Cmder, XTerm, Termux, Cool Retro Term, Tilix, PuTTY, etc.) are the examples of CLI applications. They act as interpreters for the various types of commands we write. We can perform most of the required operations (e.g. I/O, file management, network management, etc.) by executing proper commands in the command line.
If we want to execute a series of commands/instructions we can do that by writing those commands line by line in a text file and giving it a special extension (e.g. .bat or .cmd for Windows/DOS and .sh for Linux) and then executing this file in the CLI application. Now all the commands will be executed (interpreted) serially in a sequence (one by one) by the shell just like any interpreted programming language. This type of scripting is called Batch Scripting (in Windows) and Bash Scripting (in Linux).
Why use Batch Script – Echo Command?
Here are a few reasons why the echo command is commonly used:
- Displaying messages: The echo command can be used to display messages or information on the console or in a text file. This is useful for providing feedback to the user, displaying error messages, or providing instructions.
- Displaying variables: Batch scripts often use variables to store information or data. The echo command can be used to display the value of a variable on the console or in a text file, making it easier to debug and troubleshoot scripts.
- Debugging: The echo command can be used to debug scripts by displaying the values of variables, commands, or system information. This can help identify errors and improve the efficiency of scripts.
- File output: The echo command can be used to redirect output to a file, making it easier to save and share information. This can be particularly useful when generating reports or logs.
- Script automation: Batch scripts can automate repetitive tasks, making them more efficient and less prone to human error. The echo command can be used to provide feedback and ensure that scripts are running as expected.
Advantages:
There are several advantages of using the echo command in batch scripting:
- Ease of use: The echo command is simple and easy to use, requiring minimal knowledge of scripting or programming. It can be used to display messages, variables, and system information quickly and easily.
- Debugging: The echo command can be used to debug scripts by displaying the values of variables, commands, or system information. This can help identify errors and improve the efficiency of scripts.
- Automation: The echo command can be used in conjunction with other batch commands to automate repetitive tasks. This can save time and reduce the likelihood of human error.
- Output redirection: The echo command can be used to redirect output to a file, making it easier to save and share information. This can be particularly useful when generating reports or logs.
- Customization: The echo command can be customized to display messages or information in different colors or formats, making it easier to distinguish between different types of information.
Disadvantages:
There are a few disadvantages of using the echo command in batch scripting:
- Limited functionality: The echo command is limited in its functionality and can only be used to display messages, variables, and system information. For more complex operations, additional batch commands or scripting languages may be required.
- Formatting limitations: The echo command has limitations when it comes to formatting messages or information. It may not be possible to customize the formatting of text or add images or graphics to messages.
- Compatibility issues: The echo command may not be compatible with all versions of Windows or other operating systems. This can cause issues when sharing scripts or running scripts on different machines.
- Security concerns: The echo command can be used to display sensitive information, such as passwords or usernames. This information may be visible in the command history or log files, making it a security risk.
Example:
Step 1: Open your preferred directory using the file explorer and click on View. Then go to the Show/hide section and make sure that the “File name extensions” are ticked.
Step 2: Now create a text file and give it a name (e.g. 123.bat) and edit it with notepad and write the following commands and save it.
echo on echo "Great day ahead" ver
Step 3: Now save the file and execute this in the CLI app (basically in CMD). The output will be like the following.
Explanation:
It was a very basic example of batch scripting. Hereby using echo on we ensure that command echoing is on i.e. all the commands will be displayed including this command itself. The next command prints a string “Great day ahead” on the screen and the ver command displays the version of the currently running OS. Note that the commands are not case sensitive (e.g. echo and ECHO will give the same output). Now I will discuss everything about the ECHO command.
ECHO Command: The ECHO command is used to print some text (string) on the screen or to turn the on/off command echoing on the screen.
Syntax:
echo [<any text message to print on the screen>]
or
echo [<on> | <off>]
Using the ECHO command without any parameter:
When echo is used without any parameter it will show the current command echoing setting (on/off).
Syntax:
echo
Example:
Printing a message on the screen using ECHO:
We can print any text message on the screen using echo. The message is not needed to be enclosed within single quotes or double quotes ( ‘ or “), moreover any type of quote will also be printed on the screen.
Syntax:
echo <any text message to print on the screen>
Example:
Command Echoing:
- By using echo on we can turn on command echoing i.e. all the commands in a batch file will also be printed on the screen as well as their outputs.
- By using echo off we can turn off command echoing i.e. no commands in the batch file will be printed on the screen but only their outputs, but the command echo off itself will be printed.
Syntax:
echo [<on> | <off>]
Example:
This is an example where the command echoing is turned on.
Let’s see the output.
Example:
This is an example where the command echoing is turned off.
Let’s see the output.
Using <@echo off>:
We have seen that when we use echo off it will turn off command echoing but it will print the command echo off itself. To handle this situation we can use @echo off as it will turn off command echoing and also will not print this command itself.
Syntax:
@echo off
Example:
Let’s see the output.
Printing the value of a variable:
We can declare a variable and set its value using the following syntax.
Syntax:
set variable_name=value
We can print the value of a variable using the following syntax.
Syntax:
echo %variable_name%
Note that we can put the %variable_name% anywhere between any text to be printed.
Example:
Concatenation of Strings:
We can concatenate two string variables and print the new string using echo.
Example:
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
в начале файла.
cloud
Комментирование
Оставлять комментарии во время написания 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 файлах используется команда echo:
Вывод сообщений и переключение режима отображения команд на экране.
ECHO [ON | OFF]
ECHO [сообщение]
Ввод ECHO без параметров позволяет выяснить текущий режим отображения команд.
Давайте попробуем создать простой BAT файл:
echo
echo hello batch files
Запускаем.
Как видите, режим Echo включен по умолчанию. В итоге отображается и команда и результат. Давайте его выключим.
echo off
echo hello batch files
Запускаем.
Но первая команда все равно видна. Это можно исправить, сразу вызвав CLS(команда очистки экрана) после отключения режима отображения. CLS это внутренняя команда MS DOS и может вызываться прямо из командной строки.
echo off
cls
echo hello batch files
Запускаем.
Вот теперь то что надо, почти настоящая программа.
- Работа с bat-файлами
- Создание bat-файлов
- Запуск bat-файлов
- Запуск bat-файлов по расписанию
- Синтаксис написания bat-файла
- Переменные в bat-файле
- Типы переменных в BAT-файлах
- Создание и использование переменных
- Комментарии в bat-файле
- Основной синтаксис комментариев
- Основные bat-команды для написания файлов
- Примеры bat-файлов
Что такое bat-файлы
BAT-файлы или «батники» – это текстовые файлы, которые содержат ряд команд, предназначенных для выполнения операционной системой Windows. Расширение .bat или .cmd указывает на то, что файл является скриптом, который автоматически выполняет определённые задачи. Эти файлы часто используются для автоматизации рутинных задач: например, для управления файлами, запуска программ и обслуживания системы.
Работа с bat-файлами
В этом разделе мы обсудим, как начать работу с BAT-файлами. Вот что вам понадобится, чтобы создать свой первый BAT-файл:
- Компьютер с установленной операционной системой Windows, так как BAT-файлы поддерживаются только в этой ОС.
- Текстовый редактор для написания и редактирования скриптов. Хотя можно использовать стандартный Блокнот Windows, рекомендуется выбрать редактор с функцией подсветки синтаксиса, например, Notepad++. Это упростит визуальное различие команд и структур данных в коде, что существенно облегчит процесс написания и отладки скрипта.
Создание bat-файлов
- Откройте текстовый редактор и создайте новый файл. Если вы используете Notepad++, можете просто зажать сочетание клавиш Ctrl+N или выбрать опцию Новый в разделе «Файл».
- Начните с базовых команд. Простой пример BAT-файла, который выводит текст и ожидает нажатия клавиши перед закрытием, может выглядеть так
@echo off
echo Hello world!
pause
Где:
- «@echo off» команда говорит Windows не выводить последующие команды в окне командной строки, делая вывод чище.
- «echo Hello world!» выводит строку «Hello world!» в командной строке.
- «pause» заставляет скрипт остановиться и вывести сообщение «Нажмите любую клавишу для продолжения…», что позволяет пользователю увидеть результаты работы скрипта перед его закрытием.
- Сохраните файл с расширением .bat. Для этого в верхнем меню наведите мышь на раздел «Файл» и выберите Сохранить как.
Например, вы можете сохранить файл как helloworld.bat. Важно убедиться, что при сохранении файла в типе файла выбрано «Batch file», а не «Текстовые документы (*.txt)», чтобы избежать автоматического добавления расширения .txt к имени файла.
Запуск bat-файлов
Способ 1. Запуск bat-файла через проводник
- Откройте Проводник Windows и перейдите к директории, где находится ваш BAT-файл.
- Дважды кликните по файлу левой кнопкой мыши. Скрипт выполнится с теми правами пользователя, под которым вы вошли в систему.
Если скрипт завершается слишком быстро, чтобы вы могли увидеть результаты, добавьте команду pause в конец скрипта (если не сделали этого ранее).
- Если файл защищён, то откройте его с правами администратора. Для этого щёлкните по файлу правой кнопкой мыши и выберите опцию «Запуск от имени администратора».
Этот способ подходит, если после запуска BAT-файла не ожидается никакого визуального ответа. Если же нужно получить какое-либо сообщение или результат выполнения команд, следует запустить bat из командной строки.
Способ 2. Запуск bat-файла через командную строку
- Чтобы открыть командную строку, нажмите комбинацию клавиш WIN+R.
- В появившемся окне «Выполнить» введите cmd и нажмите Enter.
- В открывшемся окне командной строки перейдите к расположению нужного файла:
cd C:\path\to\your\file
Например:
cd C:\Users\lissa\Downloads
- Введите имя вашего BAT-файла и нажмите Enter, например:
helloworld.bat
После этих действий BAT-файл начнет выполнение указанных в нем команд и выведет результаты, если это предусмотрено скриптом.
Запуск bat-файлов по расписанию
Работа с BAT-файлами в Windows может быть автоматизирована с помощью регулярного запуска скриптов по расписанию, что особенно полезно для периодических задач. Для этого можно воспользоваться встроенным сервисом Windows, известным как «Планировщик заданий».
- Для открытия «Планировщика заданий», нажмите клавиши WIN+R, чтобы вызвать окно выполнения, введите «taskschd.msc» и нажмите Enter.
Так вы откроете главное окно Планировщика.
- В этом окне следует перейти к разделу «Действия» и выбрать «Создать простую задачу…», что запустит мастер создания задач.
В процессе создания задачи вам будет предложено выполнить несколько шагов:
- Создание простой задачи. На этом этапе вы задаёте имя и описание вашей задачи, чтобы легче было управлять ею в будущем.
- Триггер. Эта вкладка позволяет определить, как часто и когда именно должен запускаться ваш BAT-файл. Вы можете настроить задачу на ежедневный, еженедельный запуск или выбрать другие условия.
- Действие. Здесь указывается, что именно должно произойти при срабатывании триггера. Выберите опцию «Запустить программу», затем укажите путь к вашему BAT-файлу.
- Завершение. На последней вкладке вы увидите сводку всех введённых данных для проверки перед сохранением задачи.
После завершения настройки и подтверждения, ваш BAT-файл будет автоматически добавлен в расписание задач Windows и будет запускаться в соответствии с указанными параметрами. Это удобно для автоматизации таких процессов, как резервное копирование данных, обновление системы или выполнение рутинных операций обслуживания
Синтаксис написания bat-файла
Вот основные принципы написания BAT-файлов, которые помогут вам избежать ошибок и оптимизировать процесс выполнения скриптов:
- Новая команда – новая строка. Каждая команда в BAT-файле должна начинаться с новой строки, чтобы обеспечить четкость и правильное выполнение.
- Последовательное выполнение. Команды в BAT-файле выполняются последовательно, от первой до последней. Однако можно изменять порядок выполнения с помощью условий и переходов (например, команды goto, о которой мы расскажем позже).
- Использование кавычек для путей. Для избежания ошибок при наличии пробелов в путях и именах файлов, всегда заключайте их в кавычки. Например:
«C:\Downloads\helloworld.bat»
- Подтверждение перед выполнением. Если при выполнении команды требуется подтверждения пользователя (например, del или format), вы можете перед командой указать /Y для автоматического подтверждения, например:
format /Y helloworld.bat.
- Типы команд. Команды делятся на встроенные (например, copy, del) и внешние (.exe, .cmd или другие .bat файлы). Встроенные команды обрабатываются интерпретатором «cmd.exe», внешние требуют запуска исполняемого файла.
- Отключение отображения команд. Чтобы скрыть команды от пользователя во время выполнения BAT-файла, используйте команду @echo off в начале файла. Это создаст более чистый вид вывода.
Переменные в bat-файле
Переменные в BAT-файлах служат для хранения данных, которые могут изменяться в процессе выполнения скрипта. Они играют ключевую роль в создании гибких и повторно используемых скриптов.
Типы переменных в BAT-файлах
- Локальные переменные. Переменные, которые определены внутри BAT-файла и доступны только в рамках этого файла. Они создаются с помощью команды set и используются в том же скрипте.
- Системные переменные. Предопределенные переменные, которые предоставляют информацию о системе или контролируют поведение командной оболочки. Например, %PATH%, %TEMP%, %USERNAME%.
- Параметры командной строки (или переменные аргумента). Переменные, которые передаются скрипту при его запуске. Обозначаются как %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-файл и как с ним работать.