Что такое bat-файл, как создавать файлы пакетной обработки команд
Содержание:
- Запуск программ в файле bat и другие базовые команды
- Часть третья. Резервное копирование при помощи батников
- Создание .bat файла с помощью блокнота
- Bat файл — что к чему, вводная
- Создание пакетного файла с помощью утилиты «Dr.Batcher»
- Длинные имена в bat-файлах
- Создание bat файла
- Учимся создавать документ
- Как создать файл с расширением BAT в Windows 10/8/7
- Как перенести длинную строку?
- Сотворение файла
- Проверяем результат
- Использование Advanced BAT в EXE Converter
- Заметки
- Запуск программ в файле bat и другие базовые команды
- Отключение выдачи на экран команд в процессе осуществления пакетного файла
- Изменение IP адреса устройства из пакетного файла
Запуск программ в файле bat и другие базовые команды
В командном файле вы можете запускать любые программы и команды из этого списка: https://technet.microsoft.com/ru-ru/library/cc772390(v=ws.10).aspx (правда, некоторые из указанных могут отсутствовать в Windows 8 и Windows 10). Далее — лишь некоторые базовые сведения для начинающих пользователей.
Чаще всего бывают следующие задачи: запуск программы или нескольких программ из .bat файла, запуск какой-то функции (например, очистка буфера обмена, раздача Wi-Fi с ноутбука, выключение компьютера по таймеру).
Для запуска программы или программ используйте команду:
start «» путь_к_программе
Если путь содержит пробелы, возьмите весь путь в двойные кавычки, например:
start «» «C:Program Filesprogram.exe»
После пути к программе можно также указать параметры, с которыми она должна запускаться, например (аналогично, если параметры запуска содержат пробелы, возьмите их в кавычки):
start «» c:windowsnotepad.exe file.txt
Примечание: в двойных кавычках после start по спецификациям должно указываться имя командного файла, отображаемое в заголовке командной строки. Это необязательный параметр, но при отсутствии этих кавычек выполнение bat файлов, содержащих кавычки в путях и параметрах может пойти неожиданным образом.
Еще одна полезная возможность — запуск другого bat файла из текущего файла, сделать это можно с помощью команды call:
call путь_к_файлу_bat параметры
Переданные параметры при запуске можно прочитать внутри другого bat файла, например, мы вызываем файл с параметрами:
call file2.bat параметр1 параметр2 параметр3
В file2.bat можно прочесть эти параметры и использовать в качестве путей, параметров для запуска других программ таким образом:
echo %1
echo %2
echo %3
pause
Т.е. для каждого параметра мы используем его порядковый номер со знаком процента. Результатом в приведенном примере будет вывод в окно команд всех переданных параметров (команда echo используется для вывода текста в окно консоли).
По умолчанию, окно команд закрывается сразу после выполнения всех команд. Если нужно прочитать информацию внутри окна, используйте команду pause — она остановит выполнение команд (или закрытие окна) до нажатия любой клавиши в консоли со стороны пользователя.
Иногда, перед выполнением очередной команды нужно подождать некоторое время (например, до полного запуска первой программы). Для этого можно использовать команду:
timeout /t время_в_секундах
При желании, вы можете запустить программу в свернутом виде или развернутом видео с помощью параметров MIN и MAX перед указанием самой программы, например:
start «» /MIN c:windowsnotepad.exe
Для закрытия окна команд после выполнения всех команд (хотя, обычно оно и так закрывается при использовании start для запуска), используйте команду exit в последней строке. В случае, если консоль все равно не закрывается после запуска программы, попробуйте использовать такую команду:
cmd /c start /b «» путь_к_программе параметры
Примечание: в данном команде, если пути к программе или параметры содержат пробелы, могут быть проблемы с запуском, которые можно решить так:
cmd /c start «» /d «путь_к_папке_с_пробелами» /b имя_файла_программы «параметры_с_пробелами»
remontka.pro в Телеграм | Другие способы подписки
Часть третья. Резервное копирование при помощи батников
Резервное копирование данных — полезное и оттого весьма распространенное явление. Существует большое количество программ, отличающихся друг от друга функционалом, условиями распространения, уровнем (глубиной вопроса) и т.д. Бесспорно, пользоваться хорошей и красивой программой удобно и приятно, но если ваши задачи не слишком сложны, то элементарное создание бэкапов можно организовать и без использования стороннего софта, исключительно средствами ОСи.
Для копирования каких-либо данных используется команда copy (копирование файла/файлов) или xcopy (копирование каталогов). Т.е., допустим, нам необходимо делать бэкап содержимого папки, в которой находятся ваши данные к дипломной работе (материалы, приложения, черновик самой работы и т.д.).
В этом случае текст будет следующим
@echo off chcp 1251 xcopy "D:\diplom\*.*" "E:\backup\diplom\*.*"
Где D:\diplom\ — папка расположения всех материалов к диплому, а E:\backup\diplom\ — конечная директория резервной копии.
Создаём батник, кидаем его в автозагрузку (пуск — все программы — автозагрузка), и при каждом включении компьютера будет создаваться резервная копия (рк).Чуть усложним. Сделаем, чтобы при включении ПК старые данные сохранялись в папочке diplom_old, а новые в папочке diplom. Тогда батник будет иметь вид
@echo off chcp 1251 del "E:\backup\diplom_old\" /s /q rmdir "E:\backup\diplom_old\" /s /q rename "E:\backup\diplom\" "diplom_old" xcopy "D:\diplom\*.*" "E:\backup\diplom\*.*"
del удаляет ранее созданную вторую рк.rmdir переименовывает первую рк во вторую.xcopy создаёт новую рк.
Атрибут /s применяет команду ко всем подкаталогам, атрибут /q отключает запрос на подтверждение действий.Если в двух копиях смысла нет, можно сделать так, чтобы заменялись только те файлы, которые были изменены, те же, которые не изменились, либо вообще были удалены из исходной папки, затронуты не будут. Для этого пишем следующее
@echo off chcp 1251 xcopy "D:\diplom\*.*" "E:\backup\diplom\*.*" /E /F /H /R /K /Y /D
Создание бэкапа в архиве
Ну и последнее, что здесь стОит рассмотреть, наверное, на данном этапе — это бэкапы в архиве
Рассмотрим изменённую предыдущую ситуацию. Допустим, нам надо, чтобы при каждом включении ПК создавалась копия папки, запакованная в архив.
Нам необходимо в автозагрузку положить батник со следующим содержимым
@echo off chcp 1251 c:\PROGRA~1\WinRAR\WinRAR.exe a -o+ -agDD-MMM-YY–HH-MM-SS "E:\backup\" "D:\diplom\"
Архив папки D:\diplom будет создаваться в E:\backup, именем будет дата и время создания архива, т.е., например 16-Aug-12–14-06-53
Создание .bat файла с помощью блокнота
Первый и самый простой способ создать bat файл — использовать стандартную программу «Блокнот», присутствующую во всех актуальных версиях Windows.
Шаги по созданию будут следующими
- Запустите Блокнот (находится в Программы — Стандартные, в Windows 10 быстрее запустить через поиск в панели задач, если блокнота нет в меню «Пуск», запустить его можно из C:Windowsnotepad.exe).
- Введите в блокнот код вашего bat файла (например, скопируйте откуда-то, либо напишите свой, о некоторых командах — далее в инструкции).
- В меню блокнота выберите «Файл» — «Сохранить как», выберите место сохранение файла, укажите имя файла с расширением .bat и, обязательно, в поле «Тип файла» установите «Все файлы».
- Нажмите кнопку «Сохранить».
Примечание: если файл не сохраняется в указанное расположение, например, на диск C, с сообщение «У вас нет разрешения на сохранение файлов в этом месте», сохраните его в папку «Документы» или на рабочий стол, а затем скопируйте в нужное расположение (причина проблемы в том, что в Windows 10 для записи в некоторые папки нужны права администратора, а поскольку блокнот не был запущен от имени администратора, он не может сохранить файл в указанную папку).
Ваш файл .bat готов: если его запустить, будут автоматически выполнены все перечисленные в файле команды (при условии отсутствия ошибок и необходимости прав администратора: в некоторых случаях может потребоваться запускать файл bat от имени администратора: правый клик по файлу .bat — запустить от имени администратора в контекстном меню).
Примечание: в дальнейшем, если вы захотите отредактировать созданный файл, просто нажмите по нему правой кнопкой мыши и выберите «Изменить».
Существуют и другие способы сделать bat файл, но все они сводятся к написанию команд по одной команде в строке в текстовый файл в любом текстовом редакторе (без форматирования), который затем сохраняется с расширением .bat (например, в Windows XP и 32-битной Windows 7 вы даже можете создать файл .bat в командной строке с помощью текстового редактора edit).
Если у вас включено отображение расширений файлов (изменяется в панель управления — параметры проводника — вид — скрывать расширения зарегистрированных типов файлов), то вы можете просто создать файл .txt, затем переименовать файл, установив расширение .bat.
Bat файл — что к чему, вводная
Для начала немного о том, что такое bat файл, зачем он нужен и с чем его (или их) едят. Дабы не изобретать велосипед воспользуюсь выдержкой из Википедии:
Пакетный файл (т.е bat файл, от англ. batch file) — текстовый файл в MS-DOS, OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором.
После запуска пакетного файла, программа — интерпретатор (как правило COMMAND.COM или CMD.EXE) читает его строка за строкой и последовательно исполняет команды.
Пакетный файл — аналог shell script в Unix-подобных операционных системах.
Пакетные файлы полезны для автоматического запуска приложений. Основная область применения — автоматизация наиболее рутинных операций, что регулярно приходится совершать пользователю компьютера.
Примерами таких операций могут служить — обработка текстовых файлов; копирование, перемещение, переименование, удаление файлов; работа с папками; архивация; создание резервных копий баз данных и т. п.
Пакетные файлы поддерживают операторы if и goto (а в системах семейства Windows NT и расширенный оператор for), что позволяет обрабатывать результаты выполнения предыдущих команд или приложений и в зависимости от этого выполнять дальше тот или иной блок команд (как правило, в случае удачного завершения приложение возвращает 0 в переменной errorlevel; в случае неудачного — 1 или большее значение).
Пакетные файлы в DOS имеют расширение .bat; для других операционных систем они могут иметь другие расширения — например, .CMD в Windows NT и OS/2, или .BTM в 4DOS или подобных оболочках.
С теорией разобрались, приступим к, собственно, практике, а именно созданию bat-ника.
Создание пакетного файла с помощью утилиты «Dr.Batcher»
Указанный программный продукт является платным, но предоставляет возможность использовать тестовую версию в течение 30 дней.
Утилита «Dr.Batcher»
Шаг 1. Для создания файла воспользуйтесь меню «File», пункт «New…» или комбинацией клавиш «Ctrl+N».
Создаем файл
Шаг 2. В диалоговом окне отметьте «Empty Batch File» и нажмите «ОК».
Отмечаем «Empty Batch File» и нажимаем «ОК»
Шаг 3. Укажите, какие команды должен выполнять bat файл.
Указываем, какие команды должен выполнять bat файл
В правом фрейме имеются ключевые команды, которые можно использовать при написании кода
Шаг 4. Сохраните получившийся файл в нужную директорию.
Сохраняем получившийся файл в нужную директорию
Указанная утилита позволяет производить отладку программы «на лету»
Длинные имена в bat-файлах
Иногда в bat встречаются программы, не работающие с длинными именами с пробелами – обычно это некоторые старые программы для MS-DOS. В этих случаях помогает использование коротких DOS-имен без пробелов, а также кавычек.
Правила записи коротких DOS-имен (формат 8.3): задействуется шесть начальных символов имени папки, не учитывая пробелы, далее указывается ее номер по порядку через ~. Например: start C:Program FilesMozilla Firefoxfirefox.exe преобразуется в: start C:Progra~1Mozill~1firefox.exe.
Возможна ситуация, когда в одном каталоге имеются несколько папок с одинаковыми символами в названии.
Их короткие имена в этом случае должны нумероваться в соответствии с алфавитным порядком папок:
- Mozill~1;
- Mozill~2;
- Mozill~3.
Однако, если Mozilla Firefox будет удален с компьютера, следующие за Mozill~1 записи работать не будут. Поэтому, короткие DOS-имена – не лучший вариант решения проблемы длинных имен. Создание имен этого типа на NTFS также бывает отключено в реестре Windows.
Для решения проблемы длинных имен запись также может быть заключена в кавычки. Кавычки «», располагающиеся перед прописываемым путем к запускаемому файлу, являются обязательным атрибутом, включающим какой-либо заголовок или только кавычки.
Однако, в некоторых случаях кавычки не работают совсем. В этом случае возможно использование команды изменения текущего рабочего каталога Chdir (CD). Запись start firefox.exe приобретает в этом случае следующий рабочий вид.
Справка. Команда CD – пожалуй, единственное универсальное решение вопроса длинных имен в bat-файлах.
Создание bat файла
Для создания батника потребуется текстовый редактор (блокнот, notepad ++) и список bat команд. Примерный алгоритм смотрите ниже.
1. Создайте текстовый документ, расширение которого txt. Нажмите правой кнопкой на пустой области проводника или другого места. Наведите на «создать» курсор мыши, затем из подменю выберите «текстовый документ». Задайте ему имя, к примеру, batnik.
Скачайте notepad ++, затем установите его. Откройте batnik.txt в notepad ++, выберите «кодировки», наведите курсор на «кодировки», «кириллица», нажмите на OEM 866. Проделайте этот шаг, если используете вывод русских слов (пояснений) в сценарии, иначе Вы увидите кракозябры (не корректные символы). Далее пропишите команды. Например, скопируйте такой текст:
@echo offecho Привет – тест bat файлаpausedir c:\windowspause
Сохраните документ, далее измените тип файла Windows на расширение bat.
4. Двойным щелчком запустите batnik.bat для выполнения последовательности команд. После того как bat файл исполнится, он автоматически закроется.
Еще вы можете запустить блокнот, нажать Win + R, ввести в строку notepad и кликнуть Enter. После прописывания кода, нажмите «файл», а затем «сохранить как». В окне задайте путь сохранения, имя файла с расширением bat и щелкните «сохранить». Аналогичные действия проделайте с notepad ++ для изменения кодировки (шаг 2), если будите использовать русские символы.
Учимся создавать документ
Самый важный этап, к которому можно приступать только после установки Нотпад плюс плюс
Абсолютно не важно, будете вы использовать англ. версию или рус
Делайте выбор на свое личное усмотрение.
- В папке или на рабочем столе создаете текстовый документ (с разрешением *.txt) через контекстное меню. Имя файла может быть любым, главное расширение оставить без изменений.
Создание текстового документа
Наименование документа
- Созданный новый документ открываете через программу Нотпад. Сделать это можно, щелкнув по нему правой мышкой, затем выбрать – «Открыть с помощью», из списка выбрать нужную программу.
Создание текстового документа через файл программы Notepad++
Как создать файл с расширением BAT в Windows 10/8/7
Поскольку батник представляет собой обычный текстовый файл с необычным контентом, для его создания сгодится практически любой текстовый редактор. Разумеется, потребуется также знание синтаксиса языка командной строки. Использовать Word – не самый оптимальный способ, гораздо проще задействовать «Блокнот», но ещё лучше воспользоваться Notepad++, поскольку этот редактор обладает полезной «фишкой» – умеет подсвечивать синтаксис, облегчая задачу пользователям. Правда, в состав операционной система он не входит, его придётся скачивать.
В обоих случаях создание батника происходит по одинаковому сценарию: в меню «Файл» выбираем «Создать», заполняем файл содержимым, по окончании редактирования кликаем «Сохранить как», даём имя пакетному файлу, а в поле «Тип файла» указываем «Batch file».
В классическом «Блокноте» расширение необходимо написать руками, выбрав в поле «Тип файла» опцию «Все файлы».
При написании пакетных скриптов необходимо учитывать следующие нюансы:
- перенос строк в таких файлах недопустим, он будет интерпретироваться неправильно;
- правильной кодировкой будет UTF-8;
- при использовании в командах кириллических символов, кодировку следует изменить с помощью специальной команды chcp 1251;
- расширение BAT идентично CMD. Файлы, оканчивающиеся таким расширением, будут обработаны командным интерпретатором точно так же.
Есть и другие интересные моменты.
Использование длинных имён в BAT-файлах
Многие пользователи при практическом рассмотрении вопроса, как создать батник, в том числе с расширением CMD, сталкиваются с проблемой длинных имён, которые доступны в ОС Windows. Интерпретатор командной строки в этом отношении остался закоренелым ретроградом – он понимает имена файлов и каталогов в формате DOS, то есть длиной не более 8 символов. Как же решается подобная дилемма?
Один из наиболее известных способов – сокращение имени до 6 символов (исключая пробелы) и присвоение остатку окончания, состоящего из символа «тильда» (~) и цифры 1. Например, стандартное имя каталога Program Files будет выглядеть как Progra~1, папка Sound Blaster получит имя SoundB~1.
Казалось бы, вполне изящное решение. Но не во всех случаях. Скажем, у вас имеется несколько папок, начинающихся с одного имени. Типичный пример – установка в том же Program Files нескольких программных продуктов от компании Mozilla – в этом случае сокращённым именем будет Mozill, и если всем присвоить остаток ~1, то это будет неправильно. Выход – именовать файлы, присваивая номер в порядке возрастания. Получим последовательность для продуктов Firefox, Thunderbird и Sunbird в виде строк Mozill~1 для браузера, Mozill~2 для Thunderbird и Mozill~3 для органайзера.
Проблема в том, что если один из продуктов удалить, например, Firefox, оставшиеся две записи окажутся неработоспособными. Удалив Thunderbird, вы сделаете недоступным Sunbird. Наконец, такой способ позволяет дать имена лишь девяти файлам/папкам с одинаковым начальным именем. Так что подобный способ удовлетворительным назвать никак нельзя.
Второе решение – заключать длинные имена и пути в кавычки.
Кавычки в пакетных файлах
Если вы думаете, что знаете всё про то, как сделать BAT-файл, то, скорее всего ошибаетесь. Допустим, вам нужно указать один из параметров команды в кавычках. Сами кавычки синтаксисом не запрещены, но всегда нужно учитывать правила написания конкретной команды. Пускай нам нужно запустить экзешник scw.exe. Соответствующая команда, по идее, должна иметь вид
Но это будет воспринято интерпретатором неправильно, поскольку в синтаксисе команды START на первом месте – необязательный параметр , и только затем следует путь. Поэтому, чтобы командный интерпретатор не запутался, первый параметр обязательно указываем, даже если он не нужен – просто оставляем его пустым.
Тогда наша команда преобразится:
Правильным также будет заключение в скобки всех наименований папок/файлов с пробелами внутри. Но встречаются ситуации, когда оба варианта не сработают. В таких случаях можно посоветовать посредством команды cd перейти в нужный каталог и работать уже в целевом. В нашем случае батник будет иметь вид:
Этот метод более трудоёмкий, но он гарантированно рабочий.
Как видим, создание, написание BAT-файлов даже для таких простых задач, как запуск программ в Windows, является по большому счёту искусством.
Как перенести длинную строку?
Совет по поводу экранирующего символа ^ имеет еще одно применение: перенос строк. Я (как и многие из вас, наверное) люблю, чтобы любой исходный текст, который я пишу, выглядел красиво – даже *.bat-файлы. Одним из обязательных условий красоты и удобочитаемости кода для меня является его ширина: все строки должны умещаться в 78 столбцов. Можно поспорить по поводу числа 78, но в одном я непреклонен – ограничение на ширину текста кода должно быть, иначе это не код, а макароны.
Так вот долгое время *.bat-файлы портили мне жизнь тем, что иногда приходилось писать длинную строку – например, вызов какой-нибудь другой программы с кучей опций, и я не знал, что с этим делать. Происходило это нечасто, но всегда было неприятно. Но, к счастью, моя жизнь изменилась с тех пор, как я открыл для себя Супер-Символ ^:
packagebin.exe --recursive-search=yes --files-mask=exe,dll,pdb,obj ^ --archive-type=zip --archive-level=max --deliver-method=ftp ^ --deliver-target=ftp://ftp.site.com |
Помните лишь, что чудо-символ должен быть последним в строке – скажите «Нет!» концевым пробелам.
Сотворение файла
В данном примере рассмотрен вариант, как создать файл с расширением txt через cmd.
Не покидая необходимого каталога введите в строке следующее: «copy con filename.txt».
Здесь copy con – это команда копирования вводимой фразы в файл.
Далее становится доступным режим для ввода текста. Чтобы завершить сотворение файла, щёлкните на кнопку F6 и подтвердите операцию (клавишей «Enter»). В некоторых системах вместо F6 нажимается Ctrl+Z.
Как создать новый текстовый файл через cmd? Для этого вводится команда NUL> с именем файла. Пример на изображении:
Операцию можно повторять столько раз, сколько вам требуется файлов. Если такой надобности нет, то процедура завершается. Можно закрывать командную строку.
Пакетный (bat) файл – это тип файла, поддерживающий текст, имеющий расширение .bat, и включающий в себя построчные операторы для командной строки cmd.exe.
Этот тип файла – полезный инструмент автоматизации однообразных файловых операций – копирования, удаления и т.д., а также запуска различных приложений и выполнения других операций в ОС.
К примеру, если необходимо выполнить DOS-команду ipconfig/flushdns, очищающую кэш распознавателя DNS, это можно сделать через запуск cmd.exe. Однако, если процедуру нужно повторить многократно, лучше сделать это через запуск предварительно созданного bat-файла.
При создании файла bat, возможно, потребуется включение отображения файловых расширений. Для этого:
- Щелкнуть мышью (правой) на кнопке «Пуск», и выбрать «Панель управления». Нажимаем мышью (правой) на кнопке «Пуск», и выбираем «Панель управления»
- Запустить элемент управления «Параметры проводника». Запускаем «Параметры проводника»
- В окне «Параметры проводника» перейти к закладке «Вид» и, двигая мышкой полосу прокрутки вниз, дойти до пункта «Скрывать расширения для зарегистрированных типов файлов», сняв с него отметку и нажав «ОК». Убираем галочку и нажимаем «ОК»
Проверяем результат
В начале статьи мы уже упоминали, как правильно нужно запускать такие файлы. Теперь необходимо это применить на практике. Запускаем с применением админ. прав, и смотрим на результат.
Запуск документа в командной строке
Как только вы нажмете на любую клавишу, запустится второй сценарий. Вы увидите полный список всех папок на диске С, отображены будут даже системные и скрытые.
Окончание работы с bat файлом
Нажав ещё раз, документ закроется. Можно считать процедуру завершенной.
На практике создание файлов из описанной категории не является сложным. Справиться сможет даже начинающий пользователь. А если уделять больше времени на практику написания кодов, пользователь сможет самостоятельно делать и более серьезные вещи в сфере программирования.
Использование Advanced BAT в EXE Converter
Этот инструмент отличается от вышеупомянутого. Большинство инструментов имеют похожие названия, но они опубликованы разными разработчиками. Это будет иметь некоторые дополнительные функции, которые пользователи могут использовать в соответствии с их потребностями. Тем не менее, преобразование пакетных сценариев просто с этим инструментом. Выполните следующие шаги, чтобы преобразовать пакетный скрипт в исполняемый файл с помощью конвертера Advanced BAT в EXE:
- Откройте браузер и загрузите программное обеспечение. Затем установите его на свой компьютер.Загрузка Advanced BAT в EXE Converter
- Удерживайте клавишу Windows и нажмите S, чтобы открыть функцию поиска Windows. Найдите Advanced BAT в EXE и откройте приложение.
- Нажмите на меню Файл в строке меню и выберите опцию Открыть. Выберите пакетный скрипт и нажмите кнопку «Открыть».Открытие пакетного скрипта в Advanced BAT to EXE Converter
- Теперь нажмите на иконку Build EXE под строкой меню. Появится новое окно и нажмите кнопку Build EXE в этом.Сборка EXE для открытого пакетного скрипта
- Введите имя сохраняемого EXE-файла и нажмите кнопку Сохранить.Сохранение файла EXE
- Ваш файл будет готов как исполняемый файл. Откройте его, дважды щелкнув файл и убедитесь, что он будет работать успешно.
Есть много других инструментов, которые могут помочь пользователям конвертировать файл BAT в EXE. BAT 2 EXE это еще один хороший инструмент, который вы можете проверить. Он может конвертировать все доступные пакетные сценарии, которые доступны в папке, просто выбрав папку. Инструмент BAT 2 EXE также позволяет добавить манифест администратора.
Заметки
- Если условие, заданное в команде if, выполняется, будет выполнена команда, следующая за условием. Если условие не выполняется, команда, заданная в операторе if, пропускается, а управление переходит к команде оператора else, если она задана.
- Когда программа завершается, она возвращает код завершения. С помощью параметра errorlevel коды завершения можно использовать в качестве условий.
- Использование команды definedпеременная
При использовании команды defined переменная добавляются следующие три переменные: %errorlevel%, %cmdcmdline% и %cmdextversion%.
%errorlevel% замещается строковым представлением текущего значения errorlevel, если только уже не существует переменная среды с именем ERRORLEVEL. В этом случае будет использовано ее значение. В следующем примере показано использование значения errorlevel после выполнения пакетной программы:
goto answer%errorlevel% :answer0 echo Код возврата программы равен 0 :answer1 echo Код возврата программы равен 1 goto end :end echo Готово!
Операторы сравнения оп_сравнения также можно использовать следующим образом:
%cmdcmdline% замещается исходной командной строкой, переданной Cmd.exe, до ее обработки в Cmd.exe, если только уже не существует переменная среды с именем cmdcmdline. В этом случае будет использовано значение cmdcmdline.
%cmdextversion% замещается строковым представлением текущего значения cmdextversion, если только уже не существует переменная среды с именем CMDEXTVERSION. В этом случае будет использовано ее значение.
Использование оператора else
Оператор else должен размещаться в той же строке, что и команда if. Пример:
Приведенный ниже пример не будет работать, поскольку команда del должна заканчиваться новой строкой:
IF EXIST имя_файла. del имя_файла. ELSE echo имя_файла. отсутствует
Приведенный ниже пример не будет работать, поскольку команда else должна находиться в той же строке, что и команда if:
Если необходимо разместить всю инструкцию в одной строке, можно использовать следующую правильную форму исходной инструкции:
IF EXIST имя_файла (del имя_файла) ELSE echo имя_файла отсутствует
Запуск программ в файле bat и другие базовые команды
В командном файле вы можете запускать любые программы и команды из этого списка: (правда, некоторые из указанных могут отсутствовать в Windows 8 и ). Далее — лишь некоторые базовые сведения для начинающих пользователей.
Чаще всего бывают следующие задачи: запуск программы или нескольких программ из .bat файла, запуск какой-то функции (например, очистка буфера обмена, раздача Wi-Fi с ноутбука, выключение компьютера по таймеру).
Для запуска программы или программ используйте команду:
start "" путь_к_программе
Если путь содержит пробелы, возьмите весь путь в двойные кавычки, например:
start "" "C:Program Filesprogram.exe"
После пути к программе можно также указать параметры, с которыми она должна запускаться, например (аналогично, если параметры запуска содержат пробелы, возьмите их в кавычки):
start "" c:windowsnotepad.exe file.txt
Примечание: в двойных кавычках после start по спецификациям должно указываться имя командного файла, отображаемое в заголовке командной строки. Это необязательный параметр, но при отсутствии этих кавычек выполнение bat файлов, содержащих кавычки в путях и параметрах может пойти неожиданным образом.
Еще одна полезная возможность — запуск другого bat файла из текущего файла, сделать это можно с помощью команды call:
call путь_к_файлу_bat параметры
Переданные параметры при запуске можно прочитать внутри другого bat файла, например, мы вызываем файл с параметрами:
call file2.bat параметр1 параметр2 параметр3
В file2.bat можно прочесть эти параметры и использовать в качестве путей, параметров для запуска других программ таким образом:
echo %1 echo %2 echo %3 pause
Т.е. для каждого параметра мы используем его порядковый номер со знаком процента. Результатом в приведенном примере будет вывод в окно команд всех переданных параметров (команда echo используется для вывода текста в окно консоли).
По умолчанию, окно команд закрывается сразу после выполнения всех команд. Если нужно прочитать информацию внутри окна, используйте команду pause — она остановит выполнение команд (или закрытие окна) до нажатия любой клавиши в консоли со стороны пользователя.
Иногда, перед выполнением очередной команды нужно подождать некоторое время (например, до полного запуска первой программы). Для этого можно использовать команду:
Автор рекомендует прочесть:
timeout /t время_в_секундах
При желании, вы можете запустить программу в свернутом виде или развернутом видео с помощью параметров MIN и MAX перед указанием самой программы, например:
start "" /MIN c:windowsnotepad.exe
Для закрытия окна команд после выполнения всех команд (хотя, обычно оно и так закрывается при использовании start для запуска), используйте команду exit в последней строке. В случае, если консоль все равно не закрывается после запуска программы, попробуйте использовать такую команду:
cmd /c start /b "" путь_к_программе параметры
Примечание: в данном команде, если пути к программе или параметры содержат пробелы, могут быть проблемы с запуском, которые можно решить так:
cmd /c start "" /d "путь_к_папке_с_пробелами" /b имя_файла_программы "параметры_с_пробелами"
А вдруг и это :
Отключение выдачи на экран команд в процессе осуществления пакетного файла
Когда в пакетном файле выполняются различные команды, предусматривается выдача результата работы на экран. Далеко не всегда имеется запрос в подобных действиях и требуется осуществить исполнение с отключенным выводом. Для этого следует применять символ @, который прописывается перед самой командой.
Требуется рассмотреть это на примере. Допустим, в пакетном файле имеется строка
echo Testing
На экран предусматривается выдача echo Testing, а потом результат деятельности команды – слово Testing. Можно написать внутри пакетного документа следующие сведения:
@echo Testing
Результатом работы станет только выдача слова Testing. Можно пойти ещё дальше и установить работу таким образом, чтобы отключился вывод команд на протяжении всего файла BAT. В таком случае, требуется задать
@echo off
Изменение 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. Это и является искомой задачей. Указанная команда предлагает весьма широкие возможности в плане работы с сетевыми настройками.