Как создать bat файл в windows 10
Как создать «батник» в операционной системе Windows 7
Сделать этот файлик может любой пользователь на компьютере, который имеет достаточно прав для создания и сохранения файлов. На счет выполнения немного сложнее — выполнение «батника» должно быть разрешено как и отдельно взятому пользователю, так и операционной системе в целом (запрет иногда накладывается в целях безопасности, ведь исполняемые файлы не всегда создаются для благих дел).
Способ 1: использование расширенного текстового редактора Notepad++
Программа Notepad++ является аналогом стандартного Блокнота в операционной системе Windows, значительно превосходя его в количестве и тонкости настроек.
- Файл можно создать на любом диске или в папке. Для примера будет использован рабочий стол. На свободном месте нажмите правую кнопку мыши, наведите курсор на надпись «Создать», в выпавшем сбоку окошке щелчком левой кнопки мыши выберите «Текстовый документ»
Очень важна роль кодировки, в которой будет исполнена команда. По умолчанию используется кодировка ANSI, которую нужно заменить на OEM 866. В шапке программы нажимаем на кнопку «Кодировки», нажимаем на аналогичную кнопку в выпавшем меню, затем выбираем пункт «Кириллица» и нажимаем на «OEM 866». Как подтверждение смены кодировки справа внизу в окне появится соответствующая запись.
Тот код, который вы уже нашли в интернете или написали сами для выполнения определенной задачи, необходимо просто скопировать и вставить в сам документ. На примере ниже будет использована элементарная команда:
shutdown.exe -r -t 00
После запуска этот батник перезагрузит компьютер. Сама команда означает запуск перезагрузки, а цифры 00 — задержку ее выполнения в секундах (в данном случае она отсутствует, то есть перезапуск выполнится незамедлительно).
Когда команда будет записана в поле, наступает самый важный момент — превращение обычного документа с текстом в исполняемый. Для этого в окошке Notepad++ слева вверху выберите пункт «Файл», затем нажмите на «Сохранить как».
К уже заданному ранее слову или фразе без пробела допишется «.BAT», и получится так, как на скриншоте ниже.
После нажатия на кнопку «OK» в предыдущем окне, на рабочем столе появится новый файл, который будет выглядеть как белый прямоугольник с двумя шестеренками.
Способ 2: использование стандартного текстового редактора Блокнот
Он обладает элементарными настройками, которых вполне хватает для создания самых простых «батников». Инструкция абсолютно аналогична предыдущему способу, программы лишь немного отличаются в интерфейсе.
- На рабочем столе двойным щелчком откройте ранее созданный текстовый документ — от откроется в стандартном редакторе.
Команду, которую использовали ранее, скопируйте и вставьте в пустое поле редактора.
В окошке редактора слева вверху нажмите на кнопку «Файл» — «Сохранить как…». Откроется окно Проводника, в котором необходимо указать место сохранения конечно файла. Здесь отсутствует способ задания необходимого расширения с помощью пункта в выпадающем меню, поэтому просто нужно дописать к названию «.BAT» без кавычек, чтобы получилось так, как на скриншоте ниже.
Оба редактора отлично справляются с созданием батников. Стандартный блокнот больше подходит для простых кодов, в которых используются несложные одноуровневые команды. Для более серьезной автоматизации процессов на компьютере необходимы продвинутые батники, которые с легкостью создаются расширенным редактором Notepad++.
Рекомендуется запускать файл .BAT от имени администратора, чтобы не возникало проблем с уровнями доступа к определенным операциям или документам. Количество задаваемых параметров зависит от сложности и назначения задачи, которую необходимо автоматизировать.
lumpics.ru
Изменение IP адреса устройства из пакетного файла
Чтобы изменить IP адрес компьютера, следует применять команду netsh. Начать подобные мероприятия можно только после того, как станет определены текущие настройки. Требуется получить IP адрес на данный момент:
netsh interface ip show address
Происходит выдача текущей конфигурации. Нам необходимо узнать название применяемого интерфейса. В качестве примера это может быть FASTNET. Далее будет предполагаться необходимость изменения IP адреса на 172.22.0.33 (шлюз 172.22.0.1, маска 255.255.255.0). Предусматривается следующая строка в пакетном файле для выполнения поставленной задачи:
netsh interface ip set address name=»FASTNET» static 172.22.0.33 255.255.255.0 172.22.0.1 1
Обработка команды повлечет изменение IP адреса у интерфейса FASTNET на 172.22.0.33. Это и является искомой задачей. Указанная команда предлагает весьма широкие возможности в плане работы с сетевыми настройками.
Внешние команды
- Exit используется для выхода из консоли DOS или (с опцией /b) только текущего bat-файла или подпрограммы.
- Ipconfig – это классическая консольная команда, которая выводит информацию о сети. Она включает MAC- и IP-адреса, и маски подсети.
- Ping пингует IP-адрес, отправляя к нему пакеты данных, чтобы оценить его удаленность и время ожидания (отклика). Также используется для задания паузы. Например, команда ping 127.0.01 –n 6 приостанавливает выполнение кода на 5 с.
Библиотека команд bat-файлов огромна. К счастью, в Сети есть множество страниц, в которых все они перечислены, наряду с переменными пакетного скрипта.
Второй способ – программный
Если новички редко задействуют командный интерпретатор и довольствуются опциями блокнота, то более опытные пользователи (системные администраторы, создатели сборок ОС и ПО) предпочитают более комфортный метод для работы с файлами bat.
Он подразумевает использование специальной программы для создания bat-файлов и их редактирования. Она называется Dr.Batcher.
У её интерфейса и функционала мало отличия от «Блокнота». В основном меню устроены кнопки наиболее актуальных команд. Программа может:
- Нумеровать страницы.
- Поддерживать закладки.
- Содержать перечень системных операций.
- Подсвечивать синтаксис вводимых команд.
Сотворение bat-файла в ней происходит в такой последовательности:
- Запуск программы.
- Обращение к пункту «File». Затем нажимайте кнопку «New». После чего щёлкаете на символ чистого листа, находящийся под меню «File».
- В появившемся окне выбирается опция «Empty Batch File».
После этого появится окно программы с требующимися рабочими функциями. Указываете диапазон команд, который должен реализовывать файл. Он находится в левой стороне:
Сохраняйте документ в необходимой директории на вашем жёстком диске.
Здесь можно сразу и отредактировать файл. Для этого есть несколько вариантов:
Первый: связан с вызовом контекстного меню bat-файла. Здесь выпадает определённый перечень функций. Выбирается пункт под названием «Edit with Dr.Batcher».
После этих действий запускается программное окно. В нём содержатся данные созданного ранее bat-файла. Можно вносить в них необходимые коррективы.
Второй: происходит в самой программе . Для этого она запускается, снова вызывается опция «File» из основного меню. Выпадает окно, в котором в данном случае интерес представляет пункт «Open».
Под обозначенным меню находится иконка папки, её следует щёлкнуть. Открывается диалоговое окно, позволяющее открывать файлы. В нём прописываете путь к интересуемому документу с разрешением bat и нажимайте «Открыть».
Этот файл открывается в программном окошке и становится доступным для корректировок.
Использование графического интерфейса в операционных системах сегодня представляется чем-то само собой разумеющимся и совершенно естественным, но так было не всегда. Первая операционная система MS DOS, разработанная компанией Microsoft, не имела GUI, а управление выполнялось посредством ввода текстовых команд. С тех пор минуло без малого 40 лет, однако скриптовый язык командной строки по-прежнему пользуется популярностью, причём не только в среде разработчиков.
Командная строка не столь удобна, зато с её помощью можно выполнять недоступны из GUI операции. С другой стороны, запускать каждый раз консоль, вводить в неё одну за другой команды – всё это сильно замедляет работу. Впрочем, можно существенно упростить задачу, создав бат-файл или попросту батник – текстовый файл с расширением BAT, содержащий список инструкций, обрабатываемых командным интерпретатором CMD. Используются такие файлы для автоматизации разных задач, например, для удаления временных файлов по расписанию или запуска программ.
Как конвертировать .BAT-файл
Как показано, код .BAT-файла никоим образом не скрывается, что означает, что его очень легко редактировать. Поскольку определенные инструкции в файле .BAT (например, команда del) могут нанести ущерб вашим данным, преобразование BAT-файла в формат EXE, чтобы сделать его более похожим на файл приложения, может быть разумным.
Вы можете преобразовать файл .BAT в .EXE-файл, используя несколько инструментов командной строки. Вы можете прочитать, как это сделать в How-To Geek.
- Встроенный Windows IExpress tool предоставляет другой способ создания .EXE-файла из .BAT-файла; У Renegade’s Random Tech есть хорошее объяснение того, как это сделать.
- Хотя бесплатная версия — это всего лишь пробная версия, EXE для MSI Converter Pro может конвертировать полученный EXE-файл в файл MSI (пакет установщика Windows).
- Вы можете использовать бесплатный инструмент командной строки NSSM, если хотите запустить .BAT-файл в качестве службы Windows.
- PowerShell Scriptomatic может помочь вам преобразовать код в .BAT-файл в сценарий powershell.
Вместо поиска сценария .BAT to SH (bash shell script) для использования команд .BAT в таких программах, как Bourne Shell а также Korn Shell , попробуйте просто переписать сценарий с использованием языка Bash. Структура двух форматов отличается от других, поскольку файлы используются в разных операционных системах. См. Этот поток переполнения стека и этот учебник по сценарию Unix Shell для получения некоторой информации, которая может помочь вам перевести команды вручную.
Важный: Обычно вы не можете изменить расширение файла (например .BAT) на то, которое ваш компьютер распознает и ожидает, что новый переименованный файл будет использоваться. Фактическое преобразование формата файла с использованием одного из методов, описанных выше, должно иметь место в большинстве случаев. Учитывая, что .BAT-файлы — это просто текстовые файлы с расширением .BAT, вы можете переименовать его в .TXT, чтобы открыть его с помощью текстового редактора. Помните, что выполнение преобразования .BAT-to-.TXT предотвратит выполнение командным файлом своих команд.
Вместо того, чтобы вручную изменять расширение файла с .BAT на .TXT, вы также можете открыть командный файл в Блокнот для редактирования, а затем сохранить его в новый файл, выбирая в качестве расширения файла .TXT перед сохранением вместо .BAT.
Это также то, что вам нужно делать при создании нового .BAT-файла в Блокнот , но в обратном порядке: сохраните текстовый документ по умолчанию как .BAT вместо .TXT. В некоторых программах вам может потребоваться сохранить его в Все файлы тип файла, а затем добавьте расширение .BAT самостоятельно.
Дополнительную информацию см. В разделе «Получение дополнительной справки».
Перенаправление результата выполнения команды в документ
В случае деятельности BAT файлов сложного типа способны возникнуть проблемы в плане того, насколько правильно функционирует система. Именно по этой причине применяется специальное средство – запись в специальный лог-файл. Это предусматривает возможность ознакомиться с документом в дальнейшем и провести анализ того, насколько правильно осуществлялось выполнение поставленных задач.
Чтобы выполнить перенаправление результата работы в специально предназначенный для этого документ, требуется создать файл BAT со следующими строками:
@echo off
echo Start %time%
echo Create test.txt
echo test>C:\test.txt
echo Copy Test.txt to Old_test.txt
copy C:\test.txt C:\Old_test.txt
echo Stop %time%
Необходимо подробнее разобрать, что именно выполняет указанный набор команд.
Первой строкой задается отключение вывода команд. Это позволит получить в лог-документе исключительно результаты осуществления.
Второй строкой указывается время, когда начал исполняться пакетный файл.
Третьей строкой указывается на то, что следующей командой будет создаваться текстовый документ test.txt.
Четвертая строка предназначена для того, чтобы непосредственно осуществить поставленную задачу. Следующим этапом производится запись в него одного слова – test.
Пятая строка проводит выдачу в лог-документ пояснение о том, что следующим этапом станет происходить копирование в иное место.
В шестой строке осуществляется непосредственное копирование C:\test.txt в файл C:\Old_test.txt. Можно говорить о том, что происходит создание копии документа, но с присвоением для него нового названия.
В заключительной строке указывается команда, которая предусматривается для указания времени действия пакетного документа. Аналогичные сведения можно получить в лог-файле.
Требуется рассмотреть дальнейшие возможности по модификации предложенного набора команд. Часто возникает запрос на выполнение хранения подобных документов в специально предназначенной для них папке. Каждый день должна производиться запись отчета с присвоением для него нового названия. Оптимальный вариант – это использование имени, состоящего из некоторого слова и автоматически добавляемой к нему текущей даты. Сам файл можно назвать 1.bat и сохранить.
Теперь создадим на диске папку LOG и полный путь к ней станет иметь указанный вид: C:\LOG. Следующим этапом происходит запуск команду установленного типа:
1.bat>C:\LOG\%date~-10%.txt
Когда в расположении документа предусматриваются пробелы, рекомендуется предусмотреть указанный момент и применять кавычки или специальный формат записи. Ниже указано два возможных варианта:
«C:\Program Files\1.bat»>C:\LOG\%date~-10%.txt
C:\Progra~1\1.bat>C:\LOG\%date~-10%.txt
Предполагается, что сразу после начала работы 1.bat в папке C:\LOG произойдет создание документа с названием, которое включает текущую дату. Именно указанный файл и требуется установить в качестве отчета о деятельности пакетного файла 1.bat. Если запустить рассмотренный BAT файл, то предполагается предоставление указанного далее результата:
Start 19:03:27,20
Create test.txt
Copy Test.txt to Old_test.txt
Скопировано файлов: 1.
Stop 19:03:27,21
Чтобы произвести перенаправление результатов работы bat-документа в лог-документа, следует применять специальный символ (>). Написание команды будет иметь представленный ниже вид:
Путь\ИмяФайла.bat>Путь\ИмяЛогФайла.txt
Некоторые вопросы касаются расширения, которое должно даваться лог-файлу. Оно может быть любым, в том числе являться страницей html. Последний вариант особенно удобен в том случае, когда выгрузка значений должна происходить на какой-либо сайт.
Создание BAT-файла в Виндовс 7
Создать этот исполняемый файл может каждый пользователь, которые имеет соответствующие права на ПК. Нередко система блокирует подобные файлы автоматически, так как «батники» далеко не всегда являются безопасными для ОС. Соответственно необходимо озаботиться снятием запрета системы на выполнение .BAT файлов и предоставить доступ пользователю к запуску «батников».
Следует быть крайне внимательными, так как скаченные с подозрительных сайтов .BAT-файлы могут нанести вред системе, а также передать конфиденциальную информацию злоумышленникам. «Батники» умеют скрывать данные, создавать и удалять файлы, а также форматировать разделы. Давайте рассмотрим подробнее методы создания файлов .BAT.
Способ 1: С помощью Notepad++
Этот текстовый редактор, по сути, является аналогом обычного Блокнота, но при этом обладает десятками различных инструментов и более тонкими настройками.
- Наведите курсором на чистое место на рабочем столе и кликните ПКМ.
- В появившемся списке выберите пункт «Создать» и нажмите на раздел «Текстовый документ».
После этих действий на рабочем столе отобразится новый созданный документ. Желательно присвоить ему такое же название, которое будет у файла .BAT.
Кликните по текстовому документу ЛКМ и в появившемся меню выберите вариант «Edit with Notepad++». Теперь файл отобразится в расширенной версии редактора.
Прежде всего, следует указать правильную кодировку файла. Для этого нажмите на раздел «Кодировки», который находится в верхнем основном меню, и выберите вариант «Кириллица». Кодировку следует поменять на «OEM 866».
Код, который вы собираетесь использовать, требуется просто вставить в текстовое поле редактора. В статье для примера будет рассматриваться самая простая команда «shutdown.exe -r -t 00». С ее помощью осуществляется перезагрузка ПК, нули в коде – интервал задержки, который в данном случае нет необходимости использовать.
После вставки команды необходимо сделать из обычного файла исполняемый. Для этого нужно открыть раздел «Файл» и нажать на пункт «Сохранить как».
Перед вами отобразится Проводник, в котором требуется указать расположение и название документа. Файл будет находиться на рабочем столе, а в названии необходимо изменить тип файла. Выберите напротив соответствующей надписи вариант «Batch file». После этого к указанному названию документа прибавится приставка .BAT.
Нажмите на кнопку «Ок», чтобы на рабочем столе отобразился новый исполняемый файл. Он будет иметь внешний вид шестеренки.
Способ 2: Воспользоваться утилитой Блокнот
Тестовый редактор Блокнот не имеет такого количества функций, как предыдущее приложение, но для создания простейших исполняемых файлов вполне подходит. Инструкция практически ничем не отличается от предыдущего рассмотренного способа. Отличие заключается только в интерфейсе самого редактора.
- Создайте на рабочем столе текстовый документ и откройте его.
- Впишите необходимую команду, после чего нажмите на раздел «Файл» и выберите пункт «Сохранить как».
- Перед вами отобразится Проводник, с помощью которого необходимо изменить название документа. Допишите после имени файла слово «.BAT» и нажмите «Сохранить».
Оба описанных в статье текстовых редактора могут создавать файлы .BAT. Блокнот имеет менее насыщенный функционал в сравнении с приложением Notepad++, поэтому используется для создания более простых команд. С помощью последнего можно делать сложнейшие исполняемые файлы, указывать очередность, периоды и многое другое. Чтобы не возникали проблемы с доступом к файлам, старайтесь работать с «батниками» от имени администратора ПК. Помните, что используя сложные команды можно автоматизировать практически любые процессы в ОС.
Учимся создавать документ
Самый важный этап, к которому можно приступать только после установки Нотпад плюс плюс
Абсолютно не важно, будете вы использовать англ. версию или рус
Делайте выбор на свое личное усмотрение.
- В папке или на рабочем столе создаете текстовый документ (с разрешением *.txt) через контекстное меню. Имя файла может быть любым, главное расширение оставить без изменений.
Создание текстового документа
Наименование документа
- Созданный новый документ открываете через программу Нотпад. Сделать это можно, щелкнув по нему правой мышкой, затем выбрать – «Открыть с помощью», из списка выбрать нужную программу.
Создание текстового документа через файл программы Notepad++
Создание папки из BAT файла
Чтобы выполнить поставленную задачу, предполагается несколько доступных вариантов действий. Наиболее простой способ включает в себя применение команды MKDIR или специального сокращенного аналога – MD. Предполагается написание указанной ниже строки в документе:
MD FolderName
Когда такая команда будет осуществлена, предполагается образование новой папки FolderName. Она помещается туда же, где располагается файл BAT. Вовсе не обязательно обеспечивать подобную привязку. Допускается создавать папку в любом указанном пользователем месте, что и внесено в следующую команду:
MD D:\FolderName
Разрешается применять системы переменных в тех случаях, когда выполняется создание папок. Пример заключается в следующем – требуется создать папку в корне жесткого диска D с названием в виде имени текущего юзера. Задается вот так:
MD D:\%USERNAME%
Дальнейшее усложнение команды предписывает создание папки с именем юзера на системном диске устройства:
MD %SYSTEMDRIVE%\%USERNAME%
Ниже рассматривается вариант, когда в качестве названия для папки применяется дата на момент выполнения пакетного файла.
set datetemp=%date:~-10%
MD %SYSTEMDRIVE%\%datetemp%
Нужно выполнить рассмотрение того, каким именно образом происходит функционирование набора команд. Первой строкой создается специальная переменная datetemp. Когда работы завершатся, она удаляется, но до этого момента играет важную роль. Предусматривается корректировка значения переменной на протяжении всего времени её существования. В строке осуществляется присвоение значения, представляющего собой десять символов с правой части от системной переменной DATE. Используется формат представленного типа: Дн ДД.ММ.ГГГГ. Сначала слева идет указание недель и оно не представляет интереса. При создании папок открывается большое количество путей, которыми разрешается следовать. Это открывает большие возможности перед пользователями. Если Вы хотите увидеть перечень всех переменных, следует применить команду SET.
Шаг 3: запись и запуск bat-файла
Следующий скрипт намного упростит ежедневную онлайн-активность. Что делать, если есть желание мгновенно открыть все свои любимые новостные сайты? Поскольку скрипты используют команды консоли, то можно создать сценарий, который открывает каждую новостную ленту в одном окне браузера.
Далее следует повторить процесс создания bat-файла, начав с пустого текстового документа. Для этого необходимо щелкнуть правой кнопкой мыши на пустом месте в какой-либо папке и выбрать пункт «Создать», а затем – «Текстовый документ». После открытия файла требуется ввести следующий скрипт, который запускает основные русскоязычные средства массовой информации, доступные в Интернете:
@echo off
start «» http://fb.ru
start «» http://www.novayagazeta.ru
start «» http://echo.msk.ru
start «» http://www.kommersant.ru
start «» http://www.ng.ru
start «» http://meduza.io
start «» https://news.google.com/news/?ned=ru_ru&hl=ru
Данный скрипт содержит команды start “”, которые открывают несколько вкладок. Можно заменить предложенные ссылки любыми другими на выбор. После ввода скрипта следует зайти в меню редактора «Файл», а затем в «Сохранить как…» и записать документ с расширением .bat, изменив параметр «Тип файла» на «Все файлы» (*. *).
После сохранения для запуска скрипта достаточно дважды щелкнуть на нем. Веб-страницы мгновенно начнут загружаться. При желании можно разместить этот файл на своем рабочем столе. Это позволит получить мгновенный доступ ко всем любимым сайтам.
Пример 2 – использование переменных
В батниках можно даже использовать переменные, как в настоящем языке программирования. Рассмотрим простейший пример использования переменных, например, мы хотим умножать на 2 число, которое мы введем в поле при запуске батника.
@echo off
SET a=2
SET /p b=
SET /a c=%a%*%b%
echo %c%
pause
Как вы поняли, переменные задаются с помощью команды SET. Для того чтобы использовать переменную в дальнейшем мы с обеих сторон переменной подставляем знак процента (%), для того чтобы командная строка поняла, что это именно переменная.
- @echo off – для того чтобы наши команды не отображались на экране;
- SET a=2 – это просто задаем переменной «a» значение;
- SET /p b= – это мы задаем переменной «b» значение, которое мы введем в поле, для того чтобы батник понял, что мы хотим сами ввести значение переменной, используется ключ /p;
- SET /a c=%a%*%b% — задаем переменной «c» результат нашего выражение (в нашем примере это умножение);
- echo %c% — выводим на экран значение переменной «c»;
- pause – это мы просто ставим на паузу выполнение нашего bat файла, чтобы просто на всего увидеть все результаты.
Кстати, для того чтобы у Вас русские буквы нормально отображались в командной строке, сохраните бат файл в кодировке DOS-866.
С переменными разобрались, теперь давайте, применим это к нашему первому примеру, допустим, мы хотим оставлять не 14 архивов, а то количество, которое сами захотим, для этого мы с Вами при запуске батника будем вводить число архивов, которое нужно сохранить. Получится примерно вот так:
@echo off
SET /p chislo=
dir D:\test\*.rar /a:-D/b/o:-D > list_of_files.txt
for /F «skip=%chislo%» %%i in (list_of_files.txt) do (del /Q «%%i»)
Ну вот, примерно так, конечно на практике может это и не понадобится, но зато мы узнали, как можно использовать переменные.
Про переменные хочу еще сказать, что есть такие системные переменные как:
%DATE% — показывает текущую дату.
%TIME% — показывает текущее время.
Для примера выполните следующий код:
echo %DATE%
echo %time:~0,-3%
pause
Переменную %TIME% я написал именно таким образом, для того чтобы результат вывелся в более читабельном виде, попробуйте написать %TIME% и % TIME:~0,-3% у Вас, во втором случае уберутся 3 последних знака.
На самом деле системных переменных больше, просто эти могут потребоваться чаще остальных.
Как можно избежать использования goto?
Любой хоть сколько-то осмысленный *.bat-файл длиной больше 50 строк является ярким лозунгом в поддержку работы Дейкстры «О вреде оператора goto». Мешанина из переходов вперед и назад действительно является кодом «только для записи». Можно ли что-то предпринять по этому поводу?
На самом деле можно. Как правило, большинство меток и переходов используются для организации ветвлений при проверке условий, т.е. банальных if-then-else блоков. В оригинале, bat-язык поддерживал только одну команду в блоке then, что автоматически приводило к идиомам вида:
if condition goto :THEN rem Команды ветки ‘else’ rem ... goto IF_END :THEN rem Команды ветки ‘then’ rem ... :IF_END |
Но к счастью, командный интерпретатор cmd.exe современных ОС Windows 2000 и старше поддерживает блоки команд в конструкциях ветвления, что устраняет необходимость применения меток. Блоки команд заключаются в круглые скобки. Выглядит это так (имитируя C/C++ indentation style):
if condition ( rem Команды ветки ‘then’ rem ... ) else ( rem Команды ветки ‘else’ rem ... ) |
Конкретный пример использования:
@echo off set BUILDMODE=%1 if "%BUILDMODE%" == "" ( echoFAIL: Аргумент является обязательным ^(--debug, --release^)exit /b 1 ) rem Удаляем из аргумента все дефисы для упрощения обработки set BUILDMODE=%BUILDMODE:-=% if "%BUILDMODE%" == "debug" ( echoINFO: Устанавливаем debug-режим окруженияset CCFLAGS=/Od /MDd /Z7 ) else ( echoINFO: Устанавливаем release-режим окруженияset CCFLAGS=/O2 /MD ) |
На мой взгляд, с этим уже вполне можно жить. Но, как всегда, жизнь не так проста, как кажется. Есть одна проблема. Переменные, использующиеся в блоках then и else, раскрываются перед началом выполнения этих блоков, а не в процессе выполнения. В приведенном примере это не вызывает никаких проблем, однако в следующем вызовет:
if "%BUILDMODE%" == "debug" ( echoINFO: Устанавливаем debug-режим окружения set OPTFLAGS=/Od set CCFLAGS=%OPTFLAGS% /MDd /Z7 ) else ( echoINFO: Устанавливаем release-режим окружения set OPTFLAGS=/O2 set CCFLAGS=%OPTFLAGS% /MD ) |
Загвоздка в том, что в обоих блоках подстановка переменной OPTFLAGS произойдет до того, как она будет изменена в процессе выполнения этого блока. Соответственно, в CCFLAGS будет подставлено то значение, которое OPTFLAGS имела на момент начала выполнения данного if-блока.
Решается эта проблема путем использования отложенного раскрытия переменных. Переменные, заключенные в !…! вместо %…%, будут раскрыты в их значения только в момент непосредственного использования. Данный режим по умолчанию отключен. Включить его можно либо использованием ключа /V:ON при вызове cmd.exe, либо использованием команды
setlocal enabledelayedexpansion |
в тексте самого bat-файла. Второй способ мне представляется более удобным – не очень здорово требовать от кого-то запуска твоего сценария с определенным параметром.
С учетом сказанного предыдущий «неправильный» пример может быть исправлен так:
setlocal enabledelayedexpansion rem ... if "%BUILDMODE%" == "debug" ( echoINFO: Setting up debug mode environment set OPTFLAGS=/Od set CCFLAGS=!OPTFLAGS! /MDd /Z7 ) else ( echoINFO: Setting up release mode environment set OPTFLAGS=/O2 set CCFLAGS=!OPTFLAGS! /MD ) |
Вот теперь это почти полноценный if-then-else блок. Почти, потому что если в одной из команд echo у вас встретится закрывающая круглая скобка, то вам необходимо заэкранировать ее символом ^, иначе синтаксический анализатор путается…
Но в любом случае, это гораздо лучше безумного количества меток и переходов.
Как создать bat файл
Создать файлы бат проще простого. Откройте обычный текстовый редактор и сохраните его с расширением .bat.
Также можно использовать продвинутую программу «notepad++»
Вот образец кода чтобы написать bat файл:
Данный код откроет папку «program files» на диске C:\
Написание .bat (бат) файлов требует от пользователя компьютера особой осторожности. Так как батники могут удалять целые директории, форматировать раздел компьютера. Пример кода bat — Создать 100 папок:
Пример кода bat — Создать 100 папок:
сделать bat ом можно и (Вирус) вредную программу скрипт: К примеру — нижеприведенный код удалит важные exe файлы.
Использование комментариев в файлах BAT
Чтобы разбираться в том, что именно осуществляет заданный BAT документ, рекомендуется применять комментарии
Использование их для главных блоков особенно важно в случае значительного объема текстовой информации. Просматривая файл через некоторое время, у Вас не возникнет проблем с пониманием особенностей его работы
Написание комментариев можно осуществить несколькими способами. Когда приходится иметь дело с довольно большим количеством текста, рекомендуется следующий подход:
goto start
—————————————
Этот пакетный файл предназначен
для автоматизации рутинных операций,
выполняемых ночью для синхронизации
содержимого корпоративного ftp-сервера
с ftp-серверами филиалов
—————————————
Пакетный файл написан 01/01/2016
Последнее исправление внесено 10/02/2016
—————————————
И т.д.
:start
Подобный вариант обеспечивает запуск пакетного документа, после чего выполняется переход контроля непосредственно команде, которая помещается после start. В некоторых ситуациях будет выгодным использовать иной подход. Например, хорошо подходит применение команды rem или два двоеточия. Они оптимально подходят для небольших по своему размеру комментариев с длиной в одну строчку.
rem Комментарий
:: Комментарий
Если Вы хотите обеспечить для себя удобство последующего разбора своих записей, рекомендуется не забывать про возможности комментирования. Не стоит описывать каждый шаг, но основные блоки должны иметь информацию о себе. Комментарии считаются правилом хорошего тона в программировании.
Послесловие
Как я уже сказал и Вы сами наверное осознали — использование подобного bat файл ‘а зачастую экономит кучу времени, т.е. один раз написал и периодически запускаешь одним кликом и вместо многоминутных тычков мышкой и ползания по всем папкам получаешь автоматизированный процесс копирования.
При желании можно поставить запуск этого bat-ника в определенные дни через планировщик Windows (или другие программы позволяющие это делать) и вообще забыть о проблеме долгих ручных backup’ов.
Если есть какие-то вопросы или проблемы — спрашивайте. Как всегда помогу чем смогу 😉
PS: Если мне не изменяет память, то это кусочек темы из умных админских книжек, а именно из раздела «Автоматизация администрирования».. так что можете собой гордится 🙂