Batch script для начинающих
Мне 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 Это самая лучшая прога в мире.
Код включает русские символы и другие из 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”, то выводиться значение после символа ” bash”>@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”
Командный файл – что это такое?
Командный файл – это по сути простой документ, который содержит в себе команды командной строки. У него существует ещё несколько названий: пакетный файл, сценарий, bat-файл, батник и т.д. Последнее название исходит из его расширения .bat (реже .cmd ).
Для чего нужен командный файл?
Необходимость этого файла исходит из его содержания (команды командной строки). Следовательно при запуске такого файла, пользователь облегчает себе долгие и рутинные действия.
Например, с помощью одного только командного файла, можно создать папку, а в ней создать текстовый файл с каким-то содержимым, а ещё при этом занести записи в реестр и перезагрузиться под конец.
Хорошо облегчает? Даа.
Открыть такой файл и посмотреть что внутри легко. Достаточно просто кликнуть по нему ПКМ и выбрать в контекстном меню Открыть с помощью стандартного Блокнота.
Как создать командный файл?
Тут тоже всё просто. Открываете Блокнот, пишите команды и сохраняете с расширением .bat
Кстати, существует бесплатная программа Bat To Exe Converter которая позволяет конвертировать формат файла в exe , что в итоге не позволит открыть “батник” через Блокнот.
Создание командного файла обычно нужно когда команд много, но можно воспользоваться и одной, если лень запускать командную строку.
Например, можно создать командный файл для удаления фала. Пишем в блокноте
DEL \\.\Буква диска:\Путь\Имя файла
сохраняем с нужным расширением и запускаем.
Вот и всё на этом. С базовыми знаниями что такое командный файл Вы ознакомились.
Что такое bat-файлы?
Файлы с расширением .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 Make EXE From BAT
ECHO Written by: Jason Faulkner
REM MakeExeFromBat BatFileToConvert
REM Required Parameters:
REM Source batch file to use to produce the output Exe file.
REM Optional Parameters:
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.
REM Configuration (no quotes needed):
REM —- Do not modify anything below this line —-
REM Remove existing files
IF EXIST %OutputFile% DEL %OutputFile%
REM Build source archive
ECHO “%~dpnx1” > %SourceFiles%
IF ==<> GOTO EndInclude
ECHO “%~dpnx2” >> %SourceFiles%
“%PathTo7Zip%7za.exe” a %Source7ZFile% @%SourceFiles%
REM Build config file
ECHO ;!@Install@!UTF-8! > %Config%
ECHO RunProgram=”%~nx1″ >> %Config%
ECHO ;!@InstallEnd@! >> %Config%
COPY /B “%PathTo7Zip%7zsd.sfx” + %Config% + %Source7ZFile% %OutputFile%
IF EXIST %SourceFiles% DEL %SourceFiles%
IF EXIST %Config% DEL %Config%
IF EXIST %Source7ZFile% DEL %Source7ZFile%
Ещё один способ заключается в использовании инструмента IExpress, который по умолчанию встроен в Windows. Также можно конвертировать EXE-файл в MSI через тестовую версию EXE в MSI Converter Pro.
Также сработает инструмент командной строки NSSM (распространяется бесплатно), он позволит запустить BAT-файл в роли службы Windows.
PowerShell Scriptomatic умеет трансформировать код из bat-файла в сценарий PowerShell.
Также можно вручную переписать расширение файла .bat, заменив на другое, которое умеет распознавать компьютер. Есть вероятность, что файл с заменённым расширением будет работать. Так как файлы bat — это обыкновенный текст, проще всего переименовать расширение в .TXT. Это позволит сразу открывать их в текстовом редакторе.
Не обязательно менять расширение файла с bat на TXT вручную, можно запустить командный файл в Блокноте, как мы делали для редактирования, а потом пересохранить его в другой файл, выбрав в списке расширение .TXT.
Заключение
Файлы .bat могут значительно облегчить работу, однако с ними стоит быть внимательными и помнить, что это исполняемые файлы. Запускайте только проверенные.
При подготовке материала использовались источники:
https://habr.com/ru/sandbox/168937/
https://vindavoz.ru/poleznoe/419-komandnyy-fayl-chto-eto-takoe.html
https://www.cloud4y.ru/blog/what-is-bat-file/