Как писать батники для windows

Создание 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-файлах с параметрами (ключами)

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

Читайте также:  Сколько оперативной памяти нужно для windows 10 pro 64 bit

Скомандовать в данном случае — значит указать ключ. Ключ указывается через слэш после основной команды ( команда /ключ ). Основной командой в данном случае является 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.

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

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

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

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

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

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

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

Читайте также:  Что хранится во временных файлах windows

Запуск программ в файле 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 В ДОСе такие вопросы решались за секунду. При попытке создать ярлык , тоже все перепробовал. В реестр в Ран тоже записал строку. Но задолбался перегружать комп, чтоб перебирать варианты с кавычками. Короче выдохся. Конечно особой привязки к осммоунт у меня нет. Просто это первое что я нашел с параметрами командной строки. Что я делаю не так?

Читайте также:  Принципы лицензирования windows server 2019

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 запускает команды с последующим автоматическим завершением.

Оцените статью