Создание BAT файлов
Люди, которым знаком термин батник , знают, что BAT файлы могут существенно упростить жизнь и экономить время, если уметь их правильно писать и использовать. В этой статье я расскажу о том, как создавать BAT файлы и познакомлю вас с распространенными ошибками, которые обычно возникают при их написании.
Создать BAT файл очень просто. Достаточно открыть блокнот и сохранить пустой лист с расширением .bat , выбрав опцию Сохранить как. и написав в поле Имя файла что-нибудь оканчивающееся на .bat , например test.bat .
Тип файла указываете как на скриншоте ниже — Все файлы . Сохраняете и получаете BAT файл.
Редактировать BAT файл можно в блокноте или любом другом текстовом редакторе, ориентированным на работу с кодом.
Теперь перейдем непосредственно к практической информации. В сети многие ищут ответ на вопрос Как быть с пробелами в BAT файлах? . В путях к папкам и исполняемым файлам наличие пробела вызывает ошибку. Самый распространенный ответ: Заключи путь в кавычки . И этот ответ не верен. Правда некоторые будут с пеной у рта утверждать, что он работает. Итак, появилось два почему — почему не верен и почему некоторые будут .
На Windows (как, впрочем, и на UNIX) установленные в системе программы соответствующим образом регистрируются системой. Поэтому некоторые из установленных программ могут запускаться одной простой командой из BAT файла или из апплета Выполнить панели Пуск . Одной из таких программ является Firefox:
Если после этой команды писать путь к исполняемому файлу, то происходит следующее: запускается обозреватель Firefox и пробует обработать запрос, то есть файл, путь к которому указан. То есть, если указать следующее:
Обозреватель откроется, чтобы не было написано после start firefox . Именно поэтому некоторые товарищи будут уверять что все прекрасно работает. Однако, если взять портативную программу, то ситуация окажется совсем иная. Рассмотрим в качестве примера ftp-клиент Filezilla. Поскольку система не знает о программе, вышеупомянутая строчка
работать не будет. Чтобы запустить неизвестную системе программу, надо указать к ней путь:
Длинныe имена в bat-файлах
Теперь поговорим о путях и пробелах. Первый способ избежать этой проблемы — использование короткого имени.
В примере два имени с пробелами. Заменим их короткими. Правила создания коротких имен следующие: в коротком имени используются первые шесть символов имени без учета пробелов, после имени указывают порядковый номер папки с помощью символа
. Так как папки Program Files и Sound Club у меня в единственном числе, получится следующее:
Если рядом будут присутствовать две папки, например Sound Club и Sound Clown , то следуя правилам, в примере выше надо будет указать SoundC
2 , так как в этом случае Sound Club окажется вторым именем (имена считаются в алфавитном порядке).
Но этот способ неудобен тем, что приходится указывать порядковые номера. Ситуация с Program files более менее нормальная. Мало у кого встретится две подобные папки на системном диске. Но если вы решили установить несколько продуктов Mozilla на свой компьютер. У вас получится несколько папок, например:
Короткими именами для них будут
А теперь представьте, что вы написали BAT файл с упоминанием этих программ. Если удалить Firefox, оставшиеся записи перестанут работать, а если удалить Thunderbird, перестанет работать запись для Sunbird. Короче, способ с короткими именами — не наш способ.
Пробелы и кавычки в bat-файлах
Кавычки на самом деле работают, но не с теми способами, которые обычно советуют. Советуют обычно следующее:
Так команда не сработает, поскольку если посмотреть справку по ней ( start /? ), то в справке вы увидите следующее:
Как видите, первым параметром идёт заголовок окна и он как раз в кавычках. Этот параметр необязательный, но его всё же советуют указывать (например, тут), чтобы избежать ошибок при выполнении команды. Внутри кавычек можно ничего не писать. Получится так:
Также сработает и вариант с заключением в кавычки всех имён с пробелами по отдельности:
Однако, в ряде случаев не работает ничего из вышеописанного. В таких случаях я могу посоветовать использовать команду cd . Переходим на системный раздел, затем с помощью cd в папку Program Files и запускаем программу ( start ):
Я думаю, что такой способ будет работать везде. Теперь еще пара важных моментов. Допустим вы создали батник, запускающий три программы и вам нужно на время исключить запуск одной из трех. Это можно сделать удалением строки или ее комментированием. Первый способ — вандальный, а второй смотрите ниже.
В данном случае отключен запуск установленной в системе программы Defraggler.exe. Комментируют строки, указывая команду rem в начале строки. Все BAT файлы выполняются в окне консоли. Чтобы оно исчезало по окончании выполнения команд, не забывайте в конце писать команду на выход exit.
Запуск приложений из bat-файла
В первой части статьи я в общих чертах рассказал о BAT файлах. Теперь стало понятно — что это такое и с чем его едят. Во второй части речь пойдет уже о более конкретных вещах. Например, о том, как при помощи BAT файла запустить несколько приложений с определенными настройками или в автоматическом режиме установить программу, чтобы не тратить время на ответы типа Вы согласны с условиями лицензионного соглашения? и не нажимать лишние кнопки.
Выше было изложено несколько способов запуска приложений при помощи BAT файла. Самый первый — это короткая команда на запуск установленной в системе программы.
Это не всегда работает. Поэтому такой прием можно вполне применять на какой-то конкретной системе, но в качестве универсального решения он не подходит. Если есть цель заставить работать BAT файл везде и всегда, нужно пользоваться полными путями:
Также я отметил, что в BAT файле обязательно должна присутствовать команда на завершение:
Запуск программ в bat-файлах с параметрами (ключами)
Программу можно не просто запускать, а давать ей дополнительные команды при запуске. Например, скомандовать запускаться свернутой:
Скомандовать в данном случае — значит указать ключ. Ключ указывается через слэш после основной команды ( команда /ключ ). Основной командой в данном случае является start . Правда ключ min работает только в половине случаев, потому как относится именно к команде запуска start , а не к программам, которые эта команда запускает.
Вообще ключей существует очень много и наборы ключей разных программ могут существенно различаться. Есть, правда, несколько общих. Например, ключ справки ( /? или /help ). Чтобы проследить работу этого ключа, рассмотрим практический пример. Откройте консоль (Жмёте + R , вводите cmd , далее Enter ) и набираете в консоли следующее:
Консоль выведет на экран перечень допустимых ключей c комментариями для команды start .
Обратите внимание на ключ /wait . В некоторых случаях он бывает просто незаменим. Например, вы решили с помощью BAT файла распаковать архив с программой и эту самую программу запустить. В батнике получится две команды — на распаковку и на запуск. Поскольку команды при запуске BAT файла выполнятся почти одновременно, архив распаковаться не успеет и запускать будет нечего. Поэтому будет ошибка. В этом случае на помощь придет ключ /wait:
Таким образом система сначала выполнит первое действие, дождется его завершения и только после этого приступит ко второму. Если необходимо подождать конкретный отрезок времени, то проще воспользоваться консольной утилитой Sleep. В нужном месте BAT файла пишете следующую команду (число — количество секунд):
С помощью ключей можно делать многое. Есть возможность устанавливать приложения в тихом режиме. Для этого используется несколько ключей в зависимости от типа инсталятора, применяющегося для установки программы на компьютер:
В ряде случаев бывает очень удобно. Антивирус Avast имеет опцию тихой установки в корпоративной версии. В бесплатной (домашней) версии тихой установки якобы нет. Однако, если вы в курсе как работает инсталятор InstallShield , вы поймете, что это утка , так как этот инсталятор сам по себе поддерживает ключ тихой установки /S . А значит все продукты, выполненные на его базе — тоже. И Avast не исключение. Просто создаете в папке с Avast’ом BAT файл с содержанием
запускаете его и программа устанавливается на компьютер практически без вашего участия. Таким образом можно написать целый список программ для тихой установки и сэкономить время, например, на переустановке системы. В статье про тихую установку можно получить более подробную информацию по ключам.
Есть и другие возможности по управлению программами при помощи BAT файлов. Можно запустить программу, приказав ей открыть файл при запуске. Я пользуюсь этим способом при разработке сайтов. Очень удобно, когда весь твой инструментарий открывает нужные документы и папки нажатием всего одной кнопки:
Отмечу, что все вышеописанные приемы можно применять в различных комбинациях и сочетаниях.
Но важно помнить: всё, что касается выполнения запускаемой в батнике программы, пишется с ней в одной строке.
В качестве эпилога предложу для ознакомления конвертер BAT файлов в приложения формата .exe — Bat_To_Exe_Converter. BAT файл — это не всегда эстетично, а с помощью конвертера можно запаковать батник в exe’шник, оформив его любой иконкой на ваш выбор.
Наткнулся ещё на один конвертер BAT в EXE, можете рассмотреть в качестве альтернативы предыдущей программе: Advanced Bat To Exe Converter
Как создать bat файл в Windows
Нередко советы по тем или иным действиям и исправлениям в Windows 10, 8 и Windows 7 включают в себя шаги наподобие: «создайте файл .bat со следующим содержимым и запустите его». Однако, начинающий пользователь не всегда знает, как это сделать и что собой представляет такой файл.
В этой инструкции подробно о том, как создать командный файл bat, запустить его и некоторая дополнительная информация, которая, возможно, окажется полезной в контексте рассматриваемой темы.
Создание .bat файла с помощью блокнота
Первый и самый простой способ создать bat файл — использовать стандартную программу «Блокнот», присутствующую во всех актуальных версиях Windows.
Шаги по созданию будут следующими
- Запустите Блокнот (находится в Программы — Стандартные, в Windows 10 быстрее запустить через поиск в панели задач, если блокнота нет в меню «Пуск», запустить его можно из C:\Windows\notepad.exe).
- Введите в блокнот код вашего bat файла (например, скопируйте откуда-то, либо напишите свой, о некоторых командах — далее в инструкции).
- В меню блокнота выберите «Файл» — «Сохранить как», выберите место сохранение файла, укажите имя файла с расширением .bat и, обязательно, в поле «Тип файла» установите «Все файлы».
- Нажмите кнопку «Сохранить».
Примечание: если файл не сохраняется в указанное расположение, например, на диск C, с сообщение «У вас нет разрешения на сохранение файлов в этом месте», сохраните его в папку «Документы» или на рабочий стол, а затем скопируйте в нужное расположение (причина проблемы в том, что в Windows 10 для записи в некоторые папки нужны права администратора, а поскольку блокнот не был запущен от имени администратора, он не может сохранить файл в указанную папку).
Ваш файл .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 по спецификациям должно указываться имя командного файла, отображаемое в заголовке командной строки. Это необязательный параметр, но при отсутствии этих кавычек выполнение bat файлов, содержащих кавычки в путях и параметрах может пойти неожиданным образом.
Еще одна полезная возможность — запуск другого bat файла из текущего файла, сделать это можно с помощью команды call:
Переданные параметры при запуске можно прочитать внутри другого bat файла, например, мы вызываем файл с параметрами:
В file2.bat можно прочесть эти параметры и использовать в качестве путей, параметров для запуска других программ таким образом:
Т.е. для каждого параметра мы используем его порядковый номер со знаком процента. Результатом в приведенном примере будет вывод в окно команд всех переданных параметров (команда echo используется для вывода текста в окно консоли).
По умолчанию, окно команд закрывается сразу после выполнения всех команд. Если нужно прочитать информацию внутри окна, используйте команду pause — она остановит выполнение команд (или закрытие окна) до нажатия любой клавиши в консоли со стороны пользователя.
Иногда, перед выполнением очередной команды нужно подождать некоторое время (например, до полного запуска первой программы). Для этого можно использовать команду:
При желании, вы можете запустить программу в свернутом виде или развернутом видео с помощью параметров MIN и MAX перед указанием самой программы, например:
Для закрытия окна команд после выполнения всех команд (хотя, обычно оно и так закрывается при использовании start для запуска), используйте команду exit в последней строке. В случае, если консоль все равно не закрывается после запуска программы, попробуйте использовать такую команду:
Примечание: в данном команде, если пути к программе или параметры содержат пробелы, могут быть проблемы с запуском, которые можно решить так:
Как уже было отмечено, это лишь очень базовые сведение о наиболее часто используемых командах в bat файлах. При необходимости выполнить дополнительные задачи, попробуйте найти нужную информацию в интернете (поищите, например, «сделать что-то в командной строке» и используйте эти же команды в файле .bat) или задайте вопрос в комментариях, я постараюсь помочь.
А вдруг и это будет интересно:
Почему бы не подписаться?
Рассылка новых, иногда интересных и полезных, материалов сайта remontka.pro. Никакой рекламы и бесплатная компьютерная помощь подписчикам от автора. Другие способы подписки (ВК, Одноклассники, Телеграм, Facebook, Twitter, Youtube, Яндекс.Дзен)
18.10.2017 в 09:02
Совсем древний способ, работал еще в ДОС 3.30 и наверное раньше тоже, но в W10 работает вполне.
18.10.2017 в 09:12
Да в курсе) , но не стал с edit-ом и copy con описывать варианты, сознательно.
19.10.2017 в 08:50
на диске Д есть папка WindowsApps, перенесённая с диска Ц, системного, как и остальные папки-документы-загрузки-музыка и пр библиотеки. Винда после переустановки — удобно всё сохранилось — ко всему открылся доступ на Д полоуавтоматом, кроме WindowsApps, как деликатно получить на неё права, для себя (не админа а имя пользывателя) не нарушив там ничего. спасибо за всё, очень ваш сайт много раз выручил
19.10.2017 в 09:16
Ну деликатно никак, а в целом — поменять владельца, дать своему пользователю полный доступ к папке. Примерно как здесь описано, хотя статью стоит слегка подредактировать и дополнить: https://remontka.pro/trustedinstaller/
06.09.2018 в 10:01
В интернете нашел ярлык для очистки кеша браузера, пишут что нужно написать RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255 когда создаёшь ярлык и так же нашел текст файла .cmd для очистки другого кеша:
ВОПРОС: как добавить в этот файл .cmd ту команду из ярлыка?
14.02.2019 в 19:36
«Введите в блокнот код вашего bat файла (например, скопируйте откуда-то, либо напишите свой, о некоторых командах — далее в инструкции)».
Это вы написали для Гуру? Что скопировать, откуда скопировать и что это вообще такое, где искать этот бат файл? Если бы я знал эти тонкости то мне и решать через вас ничего не нужно было бы. Очень недоходчиво. Вынаверное пунктов 5 пропустили и объяснять стали с шестого.
15.02.2019 в 11:56
Вячеслав. Обычно читатели ищут «как создать bat файл» когда им как раз кто-то дает код и сообщает «создайте bat» без пояснений. Т.е. код уже есть, просто неясно, что с ним делать. Именно для них я и писал инструкцию выше.
А если его нет, то тут уже зависит от того, что именно вы хотите в нем прописывать и тут бы целый учебник по доступным командам командной строки Windows пришлось бы писать.
24.02.2019 в 07:06
Доброго времени суток. Приобрел ССД диск. Естественно желание продлить его срок службы. Хочу кэш и тмпешки скинуть на виртуальный диск, благо 8 гигов памяти. Очевидно, что надо в автозагрузку кинуть создание виртуального диска. Нашел программу которая имеет командную строку с параметрами. Но уже два дня бьюсь и ничего не получается. Перепробовал уже все места и куда только не писал кавычки. По инструкции все должно бы выглядеть таким образом:
в бат или СМД файле.
Но даже ярлыки создать не получается. Хотя в командной строке без всяких кавычек работает: C:\Program Files\OSFMount\osfmount.com -a -t vm -m Z: -o format -s 1G В ДОСе такие вопросы решались за секунду. При попытке создать ярлык , тоже все перепробовал. В реестр в Ран тоже записал строку. Но задолбался перегружать комп, чтоб перебирать варианты с кавычками. Короче выдохся. Конечно особой привязки к осммоунт у меня нет. Просто это первое что я нашел с параметрами командной строки. Что я делаю не так?
24.02.2019 в 13:57
Здравствуйте. Когда с кавычками непонятно (а такое бывает в bat-никах), от них можно избавиться. Для вашего случая bat-файл может выглядеть вот так (отсутствие пробела в Program Files — не опечатка):
А запускать этот файл лучше через планировщик заданий по входу в систему с наивысшими правами.
08.05.2019 в 04:42
здравствуйте.
спасибо,хорошая статья!
а как быть,если надо создать батник,который закрывает второй (уже работающий батник), находящийся на рабочем столе?
к примеру, работает ping
08.05.2019 в 09:03
Здравствуйте.
По идее, можно было бы сделать так: в bat, который с пингом, прописываем строку
title pingbat (задаем имя окна, любое, я для примера — pingbat написал).
А во втором файле:
Здесь ищем процесс по заголовку окна, закрываем.
Только почему-то для bat-файлов это не работает.
Возможное решение: запуск bat-файл как службы (сервиса), поищите, есть на эту тему инструкции.
А вот службу уже можно закрыть попроще bat-файлом (каждая строка — отдельный способ, первая убивает процесс, вторая — останавливает службу):
08.05.2019 в 15:43
спасибо. а сама команда закрытия какой-либо программы как будет выглядеть?
08.05.2019 в 17:46
Также как показано выше было — по заголовку окна taskkill, аналогично по имени процесса можно.
20.05.2019 в 01:09
я с помощью батника запускаю прогу CamStudio, а с помощью какой команды нажать в этой проге кнопку «record»?
20.05.2019 в 10:00
Параметры -start и -stop запускают и останавливают запись, насколько я смог найти (на форуме у них, вот здесь: sourceforge.net/p/camstudio/discussion/447910/thread/cba0fa69/ )
08.07.2019 в 09:41
в батнике не работает почему
08.07.2019 в 10:48
А путь точно правильный? Просто sistem меня смутило (правильно — system, но может это вы просто так папку назвали).
08.07.2019 в 19:46
путь указан правильно . батник запускает все команды а на «» /min не реагирует как будто его нет
19.07.2019 в 00:50
Спасибо огромное за то что помогли разобраться
22.08.2019 в 17:36
Здравствуйте.
Вопрос 1. Нужно батником запустить программку из Program Files (x86), а затем в ней открыть файл формата .dat . Данная программа не является программой по умолчанию для этого формата. То есть обычно это выглядело бы как
Открыть с помощью>Выбор программы из списка установленных программ
Но если не хочется назначать эту программу программой по умолчанию для формата, то как можно открыть этот файл при помощи батника?
Вопрос 2. Код:
start «» «C:\Program Files (x86)\XX\XX.exe» «D:\XX\_XX\Monday 03 June 2019 19.22.52.000.CFG»
Выдает сообщение: Не удалось найти пройденный файл D:\XX\_XX\Monday 03 June 2019 19.22.52.000.CFG.
Что не так с кодом? Или проблема в самом файле, в правах доступа или формате? Двойным щелчком файл открывается нужной программой, а батником нет.
24.08.2019 в 10:33
Прошу прощения за долгий ответ.
20.11.2019 в 14:55
подскажите я создал bat — msconfig — regedit — cmd
а запуск таких taskmgr,taskschd.msc,создается но,не запускает,а запускает куча окон с командной строкой,делает это бесконечно пока не отключишь через диспетчер задач
как сделать чтобы работало?
20.11.2019 в 15:02
А можно увидеть именно код вашего bat-файла?
20.11.2019 в 18:53
а блин,у меня почему то и те созданные уже не запускаются(
20.11.2019 в 19:17
я прописал ( start msconfig ) выбрал все файл,и сохранить как bat
22.01.2020 в 10:22
Доброго я хотел бы задать вопрос)
я хочу написать батник на запуск и закрытие программы
в общем мой алгоритм действий
в моем случае 1 программа Forza Horizon 4
2 программа explorer.exe
в общем для запуска 1 и закрытия 2 уже все написано и все работает
вопрос как сделать так чтобы после закрытия 1 запускалась 2 с правами администратора
23.01.2020 в 10:26
Если я правильно понимаю по коду, вы хотите выгрузить explorer из памяти, чтобы типа быстрее Forza шла, а потом снова запустить, чтобы рабочий стол и панель задач вернулись, так?
Тогда просто start explorer — он не от администратора запускается по умолчанию системой.
25.01.2020 в 12:35
игра идет в 100-60 фпс просто этот способ убирает микрофризы со всех игр а в случае с форзой предотвращает вылиты,а на счет start explorer я так и сделал выдает ошибку тупо у вас не разрешения на выполнение данной команды обратитесь к администратору я как то раньше это все проворачивал ток не помню как
echo «forzafix-4 batch file»
start «» «C:\Games\Forza Horizon 4\FH4_AutoUWP.exe»
timeout /t 30
taskkill /f /im explorer.exe
start explorer
pause
exit
26.01.2020 в 11:37
Странная ситуация. Я перепроверял по-разному, легко запускается explorer так. Какая-то особенность учтеки вашей, возможно, но вот только что именно не берусь предположить.
27.01.2020 в 09:04
Я понял просто с правами админа была проблема получил права добавил время в 1000 закрыл игру прога explorer запустился окошка закрылась благодарю )))
17.07.2020 в 04:21
здравствуйте.
подскажите пожалуйста как создать цикличный бат файл?
нужно, чтобы открывал 1-ю программу, затем закрывал её и открывал 2-ю программу,
и так по кругу.
17.07.2020 в 10:33
Учитываем, что мы не может закрыть задачу .bat, потому что когда мы bat запускаем, запускается процесс cmd.exe (и содержимое bat), соответственно мы их должны закрывать.
А вот для цикла у нас в BAT можно использовать FOR, но вот как его сделать прямо бесконечным сходу не отвечу.
17.07.2020 в 13:23
спасибо. сделал цикл+закрытие так:
присвоил батникам имена окон
title gm1 и сооответственно gm2 и
18.08.2020 в 19:29
Подскажите почему bat-файл с таким содержимым постоянно перезапускается?
netstat -a
Как с помощью бат-файла единожды запустить команду netstat -a
?
18.11.2020 в 02:05
Спасибо за статью! Большущий респектос! А в cmd /c — /c записывает в командную строку дальнейший текст? Или за что это отвечает?
18.11.2020 в 14:10
Здравствуйте.
cmd с ключом /c запускает команды с последующим автоматическим завершением.