Как составить bat файл


Загрузить PDF


Загрузить PDF

Из данной статьи вы узнаете, как написать и сохранить простейший пакетный файл (батник) на компьютере под управлением Windows. Пакетный файл содержит ряд команд DOS (операционная система) и обычно используется для автоматизации часто выполняемых задач, таких как перемещение файлов. Чтобы создать батник, сложное программное обеспечение не нужно — вам понадобится только текстовый редактор Блокнот.

  1. Изображение с названием 4288 1 2

    1

    Откройте Блокнот. В Блокноте можно написать программу в виде текстового файла, а затем сохранить его как пакетный файл. Чтобы открыть Блокнот, откройте меню «Пуск»

    Windows Start

    , введите блокнот и нажмите на синий значок «Блокнот» в верхней части меню.

    Реклама

  • Блокнот используется для преобразования текстовых файлов в пакетные, но код пакетного файла можно написать в любом текстовом редакторе.
  • Запомните некоторые основные команды. Пакетный файл запускает команды DOS, поэтому используемые команды аналогичны командам DOS. Вот некоторые из наиболее важных команд:

    Изображение с названием 4288 2 2

    • ECHO: выводит текст на экран;
    • @ECHO OFF: скрывает отображаемый текст;
    • START: запускает файл с приложением;
    • REM: добавляет строку с комментариями;
    • MKDIR/RMDIR: создает и удаляет каталоги;
    • DEL: удаляет файлы;
    • COPY: копирует файлы;
    • XCOPY: копирует файлы с дополнительными параметрами;
    • FOR/IN/DO: определяет файлы;
    • TITLE: редактирует заголовок окна.
      [1]
  • Напишите программу для создания каталога. Самый быстрый способ научиться создавать пакетные файлы — это начать с простейших задач. Например, используйте пакетный файл, чтобы быстро создать несколько каталогов:

    Изображение с названием 4288 3 2

    [2]

    MKDIR c:каталог1
    MKDIR c:каталог2
    
  • Напишите программу для создания резервной копии. Пакетные файлы отлично подходят для запуска сразу нескольких команд, особенно если эти команды нужно запустить множество раз. С помощью команды XCOPY можно создать пакетный файл, который скопирует файлы из указанных папок в резервную папку, причем будут перезаписаны только те файлы, которые были изменены с момента последнего копирования:

    Изображение с названием 4288 4 2

    @ECHO OFF 
    XCOPY c:original c:backupfolder /m /e /y
    
    • Эта программа скопирует файлы из папки «original» в папку «backupfolder». Эти папки можно заменить другими (с соответствующими путями к папкам). /m указывает, что будут скопированы только измененные файлы; /e указывает, что будут скопированы все подпапки (которые есть в указанной папке); /y выводит на экран запрос на перезапись файла.
  • Напишите более сложную программу для создания резервной копии. Простое копирование файлов из одной папки в другую облегчает работу с компьютером, но что если отсортировать файлы во время их копирования? Для этого понадобится команда FOR/IN/DO. Воспользуйтесь этой командой, чтобы указать, в какую папку должен скопироваться файл в зависимости от его расширения:

    Изображение с названием 4288 5 2

    @ECHO OFF 
    cd c:source
    REM Это исходная папка с файлами
    FOR %%f IN (*.doc *.txt) DO XCOPY c:source"%%f" c:text /m /y
    REM Все файлы с расширением .doc или .txt
    REM будут скопированы из c:source в c:text
    REM %%f это переменная
    FOR %%f IN (*.jpg *.png *.bmp) DO XCOPY C:source"%%f" c:images /m /y
    REM Все файлы с расширением .jpg, .png, .bmp 
    REM будут скопированы из c:source в c:images
    
  • Поэкспериментируйте с различными командами. В интернете можно найти множество примеров программ для пакетных файлов.

    Изображение с названием 4288 6 2

    1. Изображение с названием 4288 7 2

      1

      Закончите вводить программу пакетного файла. Когда вы завершите вводить и редактировать программу пакетного файла, сохраните его в качестве исполняемого файла.

    2. Изображение с названием 4288 8 2

      2

      Щелкните по Файл. Эта опция находится в верхнем левом углу окна Блокнота. Откроется выпадающее меню.

    3. Изображение с названием 4288 9 2

      3

      Нажмите Сохранить как. Эта опция находится в выпадающем меню «Файл». Откроется окно «Сохранить как».

    4. Изображение с названием 4288 10 2

      4

      Введите имя и расширение .bat. В строке «Имя файла» введите имя, а затем введите .bat.

      • Например, если пакетный файл для резервного копирования будет называться «backup», введите backup.bat.
    5. Изображение с названием 4288 11 2

      5

      Откройте выпадающее меню «Тип файла». Вы найдете его в нижней части окна «Сохранить как».

    6. Изображение с названием 4288 12 2

      6

      Щелкните по Все файлы. Эта опция находится в выпадающем меню. Так вы сможете сохранить файл с указанным расширением (в данном случае с расширением .bat).

    7. Изображение с названием 4288 13 2

      7

      Укажите папку, в которой будет храниться пакетный файл. Для этого щелкните по нужной папке (например, по «Рабочий стол») в левой части окна.

    8. Изображение с названием 4288 14 2

      8

      Нажмите Сохранить. Эта кнопка находится в нижнем правом углу окна «Сохранить как». Окно закроется.

    9. Изображение с названием 4288 15 2

      9

      Закройте Блокнот. Файл будет сохранен как пакетный файл в указанной папке.

    10. Изображение с названием 4288 16 2

      10

      Измените программу пакетного файла. Для этого щелкните по нему правой кнопкой мыши и в меню выберите «Изменить». Пакетный файл откроется в Блокноте; внесите необходимые изменения, а затем сохранить файл, нажав Ctrl+S.

      • Изменения вступят в силу, как только вы запустите пакетный файл.

      Реклама

    Советы

    • Если имя файла или каталога содержит пробелы, заключите такое имя в кавычки (например, start "C:Documents and Settings").
    • Чтобы отредактировать пакетный файл, можно использовать сторонние редакторы, такие как Notepad++, но по большому счету это пустая затея, если вы собираетесь создавать простейшие пакетные файлы.
    • Чтобы запустить некоторые команды (например, ipconfig), потребуются административные привилегии. В этом случае щелкните правой кнопкой мыши по файлу и в меню выберите «Запуск от имени администратора» (если вы вошли в систему в качестве администратора).

    Реклама

    Предупреждения

    • В зависимости от используемых команд пакетные файлы могут быть опасными. Убедитесь, что команды пакетного файла не приведут к нежелательным последствиям (например, к удалению файлов или сбою компьютера).

    Реклама

    Об этой статье

    Эту страницу просматривали 138 139 раз.

    Была ли эта статья полезной?

    Рассмотрим мощный инструмент автоматизации рутинных задач в семействе операционных систем Windows.

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

    BAT-файл — это последовательность команд для интерпретатора командной строки в виде текстового файла с расширением .bat или .cmd. Основное предназначение пакетных файлов — автоматизация рутинных действий пользователя компьютера.

    Название BAT появилось от английского batch — пакетная обработка. В истории продуктов Microsoft пакетные файлы существовали с первой версии MS-DOS в 80-х годах и позже успешно интегрировались в Microsoft Windows. В MS-DOS командным интерпретатором выступает COMMAND.COM, а начиная с Windows NT и до сих пор используется CMD.EXE.

    Интерпретатор COMMAND.COM принимает файлы с расширением .BAT. Расширение .CMD создано для интерпретатора CMD.EXE с целью различать файлы для «старого» и «нового» интерпретаторов. CMD.EXE корректно обрабатывает оба расширения.

    Интерпретатор CMD.EXE является частью современных операционных систем семейства Microsoft Windows, несмотря на отсутствие развития с начала 2000-х.

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

    Пакетный файл bat — это текстовый документ со специальным расширением. Для создания своего первого bat-файла достаточно «Блокнота», который доступен в операционной системе. Для повышения удобства написания и поддержки bat-файлов рекомендуем использовать Notepad++ или любой другой текстовый редактор с подсветкой синтаксиса. 

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

    создание файла

    Для создания пакетных файлов необходимо открыть текстовый редактор и в меню Файл выбрать Сохранить как….

    сохранение в формате bat

    В появившемся окне выбрать Тип файлаВсе файлы и задать имя с расширением .bat, как продемонстрировано на изображении выше. По умолчанию Windows скрывает расширения файлов, и пакетный файл можно отличить от текстового по пиктограмме окна с шестеренками. 

    расширения имен

    Если вы ошиблись при сохранении и пакетный файл сохранился с расширением txt, то не обязательно совершать повторное сохранение. Можно включить отображение расширения имен файлов и переименовать файл.

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

    запуск от имени администратора

    Запуск пакетных файлов производится двойным кликом по иконке. Дополнительно можно использовать команду Открыть из контекстного меню, которое доступно при нажатии правой клавиши мыши (ПКМ) по файлу. Если для выполнения команд требуются права администратора, то в том же контекстном меню есть пункт Запуск от имени администратора

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

    Запуск через контекстное меню откроет командный интерпретатор, в котором выполнятся команды bat-файла. По завершении команд окно закроется. Такое поведение неприемлемо, если от пакетного файла требуется какая-то обратная связь — например, сообщение об ошибке или результат вычислений. В таком случае интерпретатор следует запустить вручную и передать ему пакетный файл. 

    выполнение команды cmd

    Для запуска интерпретатора командной строки необходимо открыть меню Выполнить сочетанием клавиш Win + R, вписать cmd и нажать ОК.

    окно интерпретатора

    Для запуска пакетного файла его необходимо перенести мышкой в открывшееся окно и нажать Enter. Команды bat-файла будут выполнены, а его вывод вы увидите на экране. 

    Вне зависимости от способа запуска откроется окно, которое может привлекать внимание и раздражать. Для запуска в «скрытом» режиме необходимо использовать другой скриптовой язык Microsoft Windows — VBScript.

    По аналогии создаем файл с расширением .vbs и заполняем его следующими командами:

    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run chr(34) & "С:путьдовашегоскрипта.bat" & Chr(34), 0
    Set WshShell = Nothing

    Для скрытого запуска следует запускать созданный файл, а не bat-файл. Скрытый запуск bat-файла актуален для автоматизации действий по расписанию, например, создание резервной копии. 

    Запуск по расписанию

    За выполнение действий по расписанию отвечает Планировщик заданий. Открываем меню Выполнить и запускаем программу taskschd.msc.

    запуск по расписанию

    Выбираем пункт Создать простую задач и заполняем параметры задания:

    • имя для простой идентификации,
    • периодичность и время запуска,
    • действие — Запустить программу,
    • программа или сценарий — путь до вашего .bat-файла или .vbs-файла, который запускает .bat-файл скрытно.

    имя файла

    триггер

    повторяемость

    запуск программы

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

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

    Команды и синтаксис пакетных файлов

    Командный интерпретатор выполняет команды из файла последовательно — строка за строкой. Исключение составляет только оператор GOTO, который «отправляет» к указанной строке. Командный интерпретатор выполняет два вида команд: встроенные команды и внешние исполняемые файлы.

    Внешние исполняемые файлы — это любой исполняемый файл, то есть с расширением EXE, CMD или BAT, который доступен в операционной системе. Например, «Блокнот» — это исполняемый файл notepad.exe. Следующая команда приведет к запуску этого приложения с открытым файлом C:1.txt:

    notepad.exe C:1.txt

    Аргументом может быть не только путь, но и ключ — специальный аргумент, который начинается с символа слэш (/). У каждой программы свой «реестр» ключей и их значений.

    Обратите внимание, что не все внешние команды «понимают» аргументы, переданные из интерпретатора командной строки. Например, исполняемый файл приложения калькулятор, calc.exe, игнорирует все аргументы командной строки. Внешним исполняемым файлом может быть в том числе другой bat-файл.

    встроенные команды

    Встроенные команды — это команды, которые являются частью интерпретатора командной строки. Полный список команд доступен по команде HELP. Данные команды не имеют отдельного исполняемого файла. 

    Иногда в имени файла или каталога встречаются пробелы. Наиболее очевидный пример — каталог Program Files на диске C. В этом случае помогают кавычки. Их можно расставить различными способами. Например:

    cd "C:Program Files123"
    cd C:”Program Files”123

    Операционная система Windows запрещает использование множества специальных символов в именах файлов, в том числе кавычки, поэтому проблем с указанием файлов не возникнет.

    Оставлять комментарии при разработке — хороший тон. Так можно объяснить выполняемые действия и потенциальные ошибки. В пакетных файлах можно оставлять комментарии несколькими способами. 

    Официальный способ — команда rem или два двоеточия.

    rem Это первый комментарий
    :: Это тоже комментарий

    Перечисленные команды позволяют оставлять однострочные комментарии. Если хочется оставить развернутый многострочный комментарий, то прибегают к хитрости с командной GOTO.

    goto start
    ===
    Здесь можно оставить большой комментарий,
    лицензию или даже ASCII-арт
    ===
    :start

    В конце комментария задаем имя метки, а в начале комментария выполняем команду GOTO c именем метки. Этот способ требует внимания, так как для каждого комментария должна быть своя метка, иначе выполнение bat-файла может отличаться от ожидания разработчика.

    Совместимость с MS-DOS 

    В старых ОС, таких как MS-DOS, было ограничение на отображение имени файлов. На экран выводилось восемь символов имени, точка и три символа расширения. Если имя файла превышало по длине восемь символов, то имя файла отображалось по следующей схеме:

    <первые шесть символов имени>~<порядковый номер>

    Например, каталог Program Files выглядит следующим образом:

    Progra~1

    В современных операционных системах такое отображение не применяется, но CMD.EXE до сих пор поддерживает такие запросы к файлам и каталогам.

    Выберите подходящий из более 100 готовых конфигураций.

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

    Рассмотрим несколько примеров bat-файлов. Начнем с базовых команд.

    Обновление IP-адреса

    Представим простой пример: необходимо обновить аренду IP-адресов на всех сетевых интерфейсах. В командной строке это делается одной командой:

    ipconfig /renew

    Данная команда генерирует много текстового вывода, который может испугать неподготовленного пользователя. Сама команда также может быть непривлекательной. Поэтому отключим отображение команды и перенаправим вывод выполнения в «никуда». Вместо слова NUL может быть любое имя или путь. Тогда вывод будет перенаправлен в указанный файл.

    rem Отключаем отображение команд. Символ @ отключает отображение текущей команды
    @echo off
    
    rem Переводим вывод выполнения в устройство NUL, вывод исчезнет
    ipconfig /renew > NUL

    При запуске такого скрипта появляется черное окно, которое быстро исчезает. Можно оставить простые и понятные пользователю сообщения и не дать окну закрыться.

    @echo off
    echo Выполняется настройка, пожалуйста, подождите...
    ipconfig /renew > NUL
    echo Все хорошо.
    
    rem Эта команда остановит выполнение до тех пор, пока пользователь не нажмет любую клавишу
    pause

    Скорее всего данный скрипт выведет набор непонятных символов вместо сообщения. Дело в том, что в русскоязычных ОС Windows по умолчанию в CMD.EXE используется кодировка CP866. Блокнот сохраняет в CP1251 (Windows-1251), а Notepad++ — в UTF-8. Для решения проблемы необходимо сменить кодировку интерпретатора командой chcp или сохранить bat-файл в кодировке интерпретатора.

    rem Смена кодировки на Windows-1251
    chcp 1251 > NUL
    rem Смена кодировки на UTF-8
    chcp 65001 > NUL

    Я сохранил файл в кодировке UTF-8 и итоговый скрипт получился таким:

    @echo off
    chcp 65001 > NUL
    echo Выполняется настройка, пожалуйста, подождите...
    ipconfig /renew > NUL
    echo Все хорошо.
    pause

    Создание резервной копии каталога

    Перейдем к более жизненной ситуации — создание резервной копии (backup) каталога. Предположим, что каждый архив должен иметь в названии дату создания копии. Создадим каталог, имя которого — текущая дата. Текущая дата хранится в переменной DATE. Для обращения к переменным название переменной помещается между знаками процента.

    mkdir %DATE%
    cd %DATE%

    Копирование файлов в текущий каталог производится командой COPY.

    
    rem файлы 1.txt и 2.txt будут скопированы в текущую папку
    COPY C:1.txt C:2.txt .
    
    rem файл 3.txt будет сохранен в текущую папку как example.txt
    COPY C:1.txt .example.txt

    Возможно, в резервную копию необходимо дополнить служебную информацию — например, список файлов в корне копии и имя компьютера.

    rem Имя компьютера записывается в файл computer.txt
    hostname > computer.txt
    
    rem Список файлов в текущем каталоге записывается в files.txt
    dir . > files.txt

    Обычно резервные копии хранят в zip- или rar-архивах. Из командной строки отлично управляется архиватор 7z.

    cd ..
    7z -tzip a backup.zip %DATE% 

    Переименование файлов

    Переименование файлов в Windows производится командой RENAME. Однако эта команда имеет свои особенности. 

    Во-первых, переименование возможно только в рамках одного диска и одного каталога. Между каталогами одного диска допустимо перемещение, а между разными дисками — только копирование.

    
    rename abc.txt cba.txt

    Во-вторых, возможно переименование по маске. Допустим, есть список фотографий photo000.jpeg, photo001.jpeg и так далее. Нужно сменить префикс с photo на mobile.

    rename photo* mobile*

    Если в текущем каталоге есть другие файлы с префиксом photo, а переименовать надо только изображения с расширением jpeg, то команда модифицируется:

    rename photo*.jpeg mobile*.jpeg

    Удаление файлов

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

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

    rem Ищем все файлы с расширением jpeg в каталоге work
    rem Ключ /r включает в поиск все подкаталоги в каталоге work
    for /r work %%file in (*.jpeg) do (
       rem Выводим имя файла
       echo %%file
    
       delete %%i
    )

    Заключение

    Командный интерпретатор CMD.EXE существует долгое время, но, даже несмотря на отсутствия развития, остается востребованным инструментом для автоматизации рутинных действий в операционной системе Microsoft Windows.

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

    Создать BAT файл очень просто. Достаточно открыть блокнот и сохранить пустой лист с расширением .bat, выбрав опцию Сохранить как… и написав в поле Имя файла что-нибудь оканчивающееся на .bat, например test.bat.
    Тип файла указываете как на скриншоте ниже – Все файлы. Сохраняете и получаете BAT файл.

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

    Редактировать BAT файл можно в блокноте или любом другом текстовом редакторе, ориентированным на работу с кодом.

    Теперь перейдем непосредственно к практической информации. В сети многие ищут ответ на вопрос Как быть с пробелами в BAT файлах?. В путях к папкам и исполняемым файлам наличие пробела вызывает ошибку. Самый распространенный ответ: Заключи путь в кавычки. И этот ответ не верен. Правда некоторые будут с пеной у рта утверждать, что он работает. Итак, появилось два почемупочему не верен и почему некоторые будут.

    На Windows (как, впрочем, и на UNIX) установленные в системе программы соответствующим образом регистрируются системой. Поэтому некоторые из установленных программ могут запускаться одной простой командой из BAT файла или из апплета Выполнить панели Пуск. Одной из таких программ является Firefox:

    start firefox

    Если после этой команды писать путь к исполняемому файлу, то происходит следующее: запускается обозреватель Firefox и пробует обработать запрос, то есть файл, путь к которому указан. То есть, если указать следующее:

    start firefox C:Program FilesMozilla Firefoxfirefox.exe

    Обозреватель откроется, чтобы не было написано после start firefox. Именно поэтому некоторые товарищи будут уверять что все прекрасно работает. Однако, если взять портативную программу, то ситуация окажется совсем иная. Рассмотрим в качестве примера ftp-клиент Filezilla. Поскольку система не знает о программе, вышеупомянутая строчка

    start filezilla

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

    start D:FileZillaFileZilla.exe

    Длинныe имена в bat-файлах

    Теперь поговорим о путях и пробелах. Первый способ избежать этой проблемы – использование короткого имени.

    start C:Program FilesSound Clubscw.exe

    В примере два имени с пробелами. Заменим их короткими. Правила создания коротких имен следующие: в коротком имени используются первые шесть символов имени без учета пробелов, после имени указывают порядковый номер папки с помощью символа ~. Так как папки Program Files и Sound Club у меня в единственном числе, получится следующее:

    Program Files - Progra~1
    Sound Club - SoundC~1
    start C:Progra~1SoundC~1scw.exe

    Если рядом будут присутствовать две папки, например Sound Club и Sound Clown, то следуя правилам, в примере выше надо будет указать SoundC~2, так как в этом случае Sound Club окажется вторым именем (имена считаются в алфавитном порядке).

    Но этот способ неудобен тем, что приходится указывать порядковые номера. Ситуация с Program files более менее нормальная. Мало у кого встретится две подобные папки на системном диске. Но если вы решили установить несколько продуктов Mozilla на свой компьютер. У вас получится несколько папок, например:

    Mozilla Firefox
    Mozilla Thunderbird
    Mozilla Sunbird

    Короткими именами для них будут

    Mozill~1
    Mozill~2
    Mozill~3

    А теперь представьте, что вы написали BAT файл с упоминанием этих программ. Если удалить Firefox, оставшиеся записи перестанут работать, а если удалить Thunderbird, перестанет работать запись для Sunbird. Короче, способ с короткими именами – не наш способ.

    Пробелы и кавычки в bat-файлах

    Кавычки на самом деле работают, но не с теми способами, которые обычно советуют. Советуют обычно следующее:

    start "C:Program FilesSound Clubscw.exe"

    Так команда не сработает, поскольку если посмотреть справку по ней (start /?), то в справке вы увидите следующее:

    START ["заголовок"] [/D путь] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
          [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
          [/NODE узел NUMA] [/AFFINITY маска сходства] [/WAIT] [/B]
          [команда/программа] [параметры]

    Как видите, первым параметром идёт заголовок окна и он как раз в кавычках. Этот параметр необязательный, но его всё же советуют указывать (например, тут), чтобы избежать ошибок при выполнении команды. Внутри кавычек можно ничего не писать. Получится так:

    start "" "C:Program FilesSound Clubscw.exe"

    Также сработает и вариант с заключением в кавычки всех имён с пробелами по отдельности:

    start C:"Program Files""Sound Club"scw.exe

    Однако, в ряде случаев не работает ничего из вышеописанного. В таких случаях я могу посоветовать использовать команду cd. Переходим на системный раздел, затем с помощью cd в папку Program Files и запускаем программу (start):

    %SystemDrive%
    cd Program FilesSound Club
    start scw.exe

    Я думаю, что такой способ будет работать везде. Теперь еще пара важных моментов. Допустим вы создали батник, запускающий три программы и вам нужно на время исключить запуск одной из трех. Это можно сделать удалением строки или ее комментированием. Первый способ – вандальный, а второй смотрите ниже.

    start firefox
    start jetaudio
    rem start defraggler

    В данном случае отключен запуск установленной в системе программы Defraggler.exe. Комментируют строки, указывая команду rem в начале строки. Все BAT файлы выполняются в окне консоли. Чтобы оно исчезало по окончании выполнения команд, не забывайте в конце писать команду на выход exit.

    start firefox
    start jetaudio
    rem start defraggler
    exit

    Запуск приложений из bat-файла

    В первой части статьи я в общих чертах рассказал о BAT файлах. Теперь стало понятно – что это такое и с чем его едят. Во второй части речь пойдет уже о более конкретных вещах. Например, о том, как при помощи BAT файла запустить несколько приложений с определенными настройками или в автоматическом режиме установить программу, чтобы не тратить время на ответы типа Вы согласны с условиями лицензионного соглашения? и не нажимать лишние кнопки.

    Выше было изложено несколько способов запуска приложений при помощи BAT файла. Самый первый – это короткая команда на запуск установленной в системе программы.

    start firefox

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

    start C:"Program Files""Mozilla Firefox"firefox.exe

    Также я отметил, что в BAT файле обязательно должна присутствовать команда на завершение:

    start C:"Program Files""Mozilla Firefox"firefox.exe
    exit

    Запуск программ в bat-файлах с параметрами (ключами)

    Программу можно не просто запускать, а давать ей дополнительные команды при запуске. Например, скомандовать запускаться свернутой:

    start /min D:FileZillaFileZilla.exe
    exit

    Скомандовать в данном случае – значит указать ключ. Ключ указывается через слэш после основной команды (команда /ключ). Основной командой в данном случае является start. Правда ключ min работает только в половине случаев, потому как относится именно к команде запуска start, а не к программам, которые эта команда запускает.

    Вообще ключей существует очень много и наборы ключей разных программ могут существенно различаться. Есть, правда, несколько общих. Например, ключ справки (/? или /help). Чтобы проследить работу этого ключа, рассмотрим практический пример. Откройте консоль (Жмёте      + R, вводите cmd, далее Enter) и набираете в консоли следующее:

    start /?

    Консоль выведет на экран перечень допустимых ключей c комментариями для команды start.

    ключи команды 'start'

    Обратите внимание на ключ /wait. В некоторых случаях он бывает просто незаменим. Например, вы решили с помощью BAT файла распаковать архив с программой и эту самую программу запустить. В батнике получится две команды – на распаковку и на запуск. Поскольку команды при запуске BAT файла выполнятся почти одновременно, архив распаковаться не успеет и запускать будет нечего. Поэтому будет ошибка. В этом случае на помощь придет ключ /wait:

    Таким образом система сначала выполнит первое действие, дождется его завершения и только после этого приступит ко второму. Если необходимо подождать конкретный отрезок времени, то проще воспользоваться консольной утилитой Sleep. В нужном месте BAT файла пишете следующую команду (число – количество секунд):

    start Sleep.exe 15

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

    /S
    /s
    /q
    /silent
    и ряд других

    В ряде случаев бывает очень удобно. Антивирус Avast имеет опцию тихой установки в корпоративной версии. В бесплатной (домашней) версии тихой установки якобы нет. Однако, если вы в курсе как работает инсталятор InstallShield, вы поймете, что это утка, так как этот инсталятор сам по себе поддерживает ключ тихой установки /S. А значит все продукты, выполненные на его базе – тоже. И Avast не исключение. Просто создаете в папке с Avast’ом BAT файл с содержанием

    start avast.exe /S
    exit

    запускаете его и программа устанавливается на компьютер практически без вашего участия. Таким образом можно написать целый список программ для тихой установки и сэкономить время, например, на переустановке системы. В статье про тихую установку можно получить более подробную информацию по ключам.

    Есть и другие возможности по управлению программами при помощи BAT файлов. Можно запустить программу, приказав ей открыть файл при запуске. Я пользуюсь этим способом при разработке сайтов. Очень удобно, когда весь твой инструментарий открывает нужные документы и папки нажатием всего одной кнопки:

    rem соединение с ftp-сервером
    start /min D:FileZillaFileZilla.exe "ftp://логин:пароль@сервер"
    
    rem открытие index.php в Firefox
    start C:"program files""mozilla firefox"firefox.exe "http://localhost/папка_сайта/index.php"
    
    rem открытие start.html в текстовом редакторе
    start /min C:"Program Files"текстовой_редактор.exe "E:серверпапка_сайтаindex.html"
    
    rem открытие папки с файлами сайта
    start /min E:серверпапка_с_сайтом
    
    rem выход из консоли
    exit

    Отмечу, что все вышеописанные приемы можно применять в различных комбинациях и сочетаниях.

    start /min /wait program.exe /m /S
    start C:Directoryprogram2.exe "C:Filesfile.odt"
    exit

    Но важно помнить: всё, что касается выполнения запускаемой в батнике программы, пишется с ней в одной строке.

    start C:"program files""mozilla firefox"firefox.exe "http://localhost/папка_сайта/index.php"

    В качестве эпилога предложу для ознакомления конвертер BAT файлов в приложения формата .exe – Bat_To_Exe_Converter. BAT файл – это не всегда эстетично, а с помощью конвертера можно запаковать батник в exe’шник, оформив его любой иконкой на ваш выбор.

    Наткнулся ещё на один конвертер BAT в EXE, можете рассмотреть в качестве альтернативы предыдущей программе: Advanced Bat To Exe Converter

    На этом всё.

    Если материалы сайта оказались для вас полезными, можете поддержать дальнейшее развитие ресурса, оказав ему (и мне ) моральную и материальную поддержку.

    Дисклеймер

    Мне 12 и я сам в этой теме плохо шарю, т.к. инфы в инете мало. Пж, без хейта.

    Что такое батники и с чем их едят

    Пакетный файл или в простонародье батник – это файл, который запускает командную сроку или сокращенно cmd, которая построчно интерпретирует команды, записанные в нем. Подробнее смотрите на https://ru.wikipedia.org/wiki/Пакетный_файл.

    Первая программа и основные команды

    Чтобы сделать батник, нужно сначала создать текстовый файл с именем test и изменить расширение c .txt на .bat. О том, как можно это сделать, читайте здесь: https://remontka.pro/file-extensions. У вас должен появиться файл с такой иконкой:

    test.bat

    test.bat

    Нажимаем на него ПРАВОЙ кнопкой мыши. Должно появиться диалоговое окно. Нажмем “Открыть”. Должен открыться блокнот, пишем:

    @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” то:

    1. Переменной задастся значение выражения, а не его текст, например:

      set a=2+2
      > 2+2
      set /a a=2+2
      > 4
    2. Переменной можно присвоить ТОЛЬКО числовое значение

    Чтобы обратиться к переменной, нужно окружить ее символами “%” (так %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%%%

    Как создать bat файл в WindowsНередко советы по тем или иным действиям и исправлениям в Windows 10, 8 и Windows 7 включают в себя шаги наподобие: «создайте файл .bat со следующим содержимым и запустите его». Однако, начинающий пользователь не всегда знает, как это сделать и что собой представляет такой файл.

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

    Создание .bat файла с помощью блокнота

    Первый и самый простой способ создать bat файл — использовать стандартную программу «Блокнот», присутствующую во всех актуальных версиях Windows.

    Шаги по созданию будут следующими

    1. Запустите Блокнот (находится в Программы — Стандартные, в Windows 10 быстрее запустить через поиск в панели задач, если блокнота нет в меню «Пуск», запустить его можно из C:Windowsnotepad.exe).
    2. Введите в блокнот код вашего bat файла (например, скопируйте откуда-то, либо напишите свой, о некоторых командах — далее в инструкции). Создание bat файла в блокноте
    3. В меню блокнота выберите «Файл» — «Сохранить как», выберите место сохранение файла, укажите имя файла с расширением .bat и, обязательно, в поле «Тип файла» установите «Все файлы». Сохранение bat файла в блокноте
    4. Нажмите кнопку «Сохранить».

    Примечание: если файл не сохраняется в указанное расположение, например, на диск C, с сообщение «У вас нет разрешения на сохранение файлов в этом месте», сохраните его в папку «Документы» или на рабочий стол, а затем скопируйте в нужное расположение (причина проблемы в том, что в Windows 10 для записи в некоторые папки нужны права администратора, а поскольку блокнот не был запущен от имени администратора, он не может сохранить файл в указанную папку).

    Ваш файл .bat готов: если его запустить, будут автоматически выполнены все перечисленные в файле команды (при условии отсутствия ошибок и необходимости прав администратора: в некоторых случаях может потребоваться запускать файл bat от имени администратора: правый клик по файлу .bat — запустить от имени администратора в контекстном меню).

    Запуск bat файла от имени администратора

    Примечание: в дальнейшем, если вы захотите отредактировать созданный файл, просто нажмите по нему правой кнопкой мыши и выберите «Изменить».

    Существуют и другие способы сделать bat файл, но все они сводятся к написанию команд по одной команде в строке в текстовый файл в любом текстовом редакторе (без форматирования), который затем сохраняется с расширением .bat (например, в Windows XP и 32-битной Windows 7 вы даже можете создать файл .bat в командной строке с помощью текстового редактора edit).

    Если у вас включено отображение расширений файлов (изменяется в панель управления — параметры проводника — вид — скрывать расширения зарегистрированных типов файлов), то вы можете просто создать файл .txt, затем переименовать файл, установив расширение .bat.

    Запуск программ в файле 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 имя_файла_программы "параметры_с_пробелами"

    Как уже было отмечено, это лишь очень базовые сведение о наиболее часто используемых командах в bat файлах. При необходимости выполнить дополнительные задачи, попробуйте найти нужную информацию в интернете (поищите, например, «сделать что-то в командной строке» и используйте эти же команды в файле .bat) или задайте вопрос в комментариях, я постараюсь помочь.

    Добавить комментарий