Написать bat файл: Как создать BAT-файл в Windows правильно

Как создать bat файл в Windows 10

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

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

Чтобы создать новый Bat, можно воспользоваться любым текстовым редактором, например, блокнотом, а можно использовать командную строку Windows. Рассмотрим оба способа более подробно.

Вариант №1: Создаем Bat при помощи Блокнота

Такой способ создания файла с системными командами является наиболее распространённым и самым удобным. Нам потребуется выполнить следующие операции:

  1. Открываем стартовое меню Windows и запускаем стандартное приложение «Блокнот».

    Запускаем «Блокнот» из меню «Пуск»

  2. После этого вписываем в него нужные нам системные команды.
  3. Далее кликаем по меню «Файл» и выбираем вариант «Сохранить как».

    Сохраняем bat файл

  4. Переходим в папку, в которую нужно сохранить файл. 
  5. Напротив пункта «Тип файла» выбираем вариант «Все файлы».
  6. Вписываем нужное нам название и после него добавляем расширение .bat
  7. Кликаем по кнопке «Сохранить».

    Устанавливаем настройки сохранения и меняем расширение

Примечание: Если в системных командах, которые вы выписали, имеются русские буквы, то для их корректного отображения следует указать кодировку «ANSI» при сохранении. В противном случае после запуска созданного файла кириллический текст может некорректно отображаться.

Устанавливаем кодировку ANSI

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

Создать Bat файл при помощи блокнота также можно из контекстного меню проводника. Для этого потребуется проделать следующее:

  1. Открыть папку, где будет сохранён файл.
  2. Вызвать контекстное меню и выбрать вариант «Создать», после этого «Текстовый документ».

    Создаем новый текстовой документ

  3. Дать ему любое имя и сменить расширение на .bat (для этого в проводнике Windows должно быть включено отображение разрешений).
  4. После этого появится предупреждение об изменении расширения файла. Кликаем по кнопке «Да».

    Подтверждаем изменение расширения

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

    Открываем bat файл для редактирования

  6. Откроется стандартный «Блокнот», в котором можно будет вписать нужные команды.
  7. После редактирования сохраняем изменения, выбрав соответствующий пункт из меню «Файл» или воспользовавшись клавиатурной комбинацией «Ctrl + S».

Теперь bat файл готов к запуску.

Примечание: для более удобного редактирования Bat файлов будет целесообразно воспользоваться программой Notepad++. Это продвинутый вариант обычного блокнота, но с дополнительными функциями. К примеру, тут можно выбрать кодировку «OEM 866» с поддержкой кириллицы, которая лучше справляется с отображением русских букв, чем стандартная ANSI.

Вариант №2: Создаем Bat файл с использованием командной строки

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

  1. Запускаем «Командную строку» из стартового меню системы.

    Запускаем командную строку из меню «Пуск»

  2. Далее в появившемся окне вводим следующую команду — copy con c:\name.bat где copy con — это команда для создания файла, c:\ — адрес сохранения, name — имя документа, а .bat — это расширение.

    Вписываем команду для создания bat файла

  3. После запуска команды курсор перейдет на новую строку, в которую можно будет вписать нужные системные команды.

    Примечание: переход к новой строке при вводе команд осуществляется путем нажатия «Ctrl + Enter» на клавиатуре. Если вам нужно вставить уже готовый скопированный текст, просто кликните по пустому месту в окне и выберите соответствующий пункт из контекстного меню.

  4. Чтобы сохранить файл, нужно будет воспользоваться клавиатурной комбинацией «Ctrl + Z» и после неё нажать «Enter». В окне отобразятся символы ^Z , но в самом файле при сохранении их не будет.  

Если все сделано правильно, то в окне программы появится сообщение о копировании.

Оповещение о завершении сохранения файла

Теперь BAT файл готов к использованию.

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


Post Views: 1 341

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

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

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

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

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

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

start firefox

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

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

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

start filezilla

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

start D:\FileZilla\FileZilla.exe

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

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

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

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

Program Files - Progra~1
Sound Club - SoundC~1
start C:\Progra~1\SoundC~1\scw.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 Files\Sound Club\scw.exe"

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

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

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

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

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

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

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

%SystemDrive%
cd \Program Files\Sound 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:\FileZilla\FileZilla.exe
exit

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

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

start /?

Консоль выведет на экран перечень допустимых ключей c комментариями для команды 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:\FileZilla\FileZilla. 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:\Directory\program2.exe "C:\Files\file.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

На этом всё.

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

Как я могу использовать командный файл для записи в текстовый файл?

спросил

Изменено
2 года, 6 месяцев назад

Просмотрено
737 тысяч раз

Мне нужно написать сценарий, который может записывать одну строку текста в текстовый файл в том же каталоге, что и пакетный файл.

  • файл
  • пакетный файл
  • текст

1

Вы можете использовать echo и перенаправить вывод в текстовый файл (см. примечания ниже):

 rem Сохранено в D:\Temp\WriteText.bat
@эхо выключено
эхо Это тест> test.txt
эхо 123>> test.txt
эхо 245.67>> test.txt
 

Вывод:

D:\Temp>WriteText
D:\Temp> введите test.txt
Это тест
123
245,67
Д:\Темп>
 

Примечания:

  • @echo off отключает вывод каждой команды на консоль
  • Если вы не укажете ему конкретное имя пути, перенаправление с > или >> будет выполнять запись в текущий каталог (каталог, в котором выполняется код).
  • Эхо Это тест > test.txt использует один > для перезаписи любого уже существующего файла новым содержимым.
  • Остальные эхо 9Операторы 0024 используют два символа >> для добавления к текстовому файлу (добавить в) вместо его перезаписи.
  • Тип test.txt просто выводит вывод файла в командное окно.

1

Проще использовать только один кодовый блок, тогда вам понадобится только одно перенаправление.

 (
  эхо Line1
  эхо Line2
  ...
  повторить последнюю строку
) > имя файла.txt
 

7

echo "blahblah"> txt.txt сотрет txt и поместит blahblah на его место

echo "blahblah">> txt.txt напишет blahblah на новой строке в txt

Я думаю, что оба создадут новый txt, если его не существует (я знаю, что первый существует)

Там, где выше написано « txt.txt », при желании можно вставить путь к файлу. например C:\Users\\desktop , что поместит его на рабочий стол.

3

 @эхо выключено
    (эхо в первой строке) > xy. txt
    (эхо во второй строке) >> xy.txt
    выход
 

Два >> означают, что вторая строка будет добавлена ​​к файлу (т.е. вторая строка будет начинаться после последней строки xy.txt).

так выглядит xy.txt :

 это в первой строке
это во второй строке
 

@эхо выключено
Запись заголовка с использованием пакетных файлов
цвет 0а

эхо Пример текста > Имя файла.txt
echo Дополнительный текст >> Имя файла.txt

 @ECHO OFF
Запись заголовка с использованием пакетных файлов
цвет 0а
echo Пример текста > Имя файла.txt
echo Дополнительный текст >> Имя файла.txt
 
 @эхо выключено
эхо Введите текст здесь.
:вершина
установить /p бумпаны =
Пауза
эхо %boompanes%> практический.txt
 

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

Как мне создать команду HELP для пользовательских файлов BAT?

Я написал небольшой скрипт для преобразования текста в верхний регистр , как показано ниже, и сохранил этот файл как . BAT расширение

 `converttoupper.bat`
 

Я хочу, чтобы пользователь попробовал команду "help", чтобы получить справку по синтаксису для использования команд, как показано ниже

 help converttoupper
 

примерно так

 # помогите преобразовать вверхнее
Для получения дополнительной информации о конкретной команде введите HELP имя-команды
CONVERTTOUPPER Преобразует текст в верхний регистр.
 

Обновление

У меня все в порядке, даже если я получаю что-то, как показано ниже. Я не хочу перезаписывать какие-либо команды Windows.

 помогите мне преобразоватьверхнее
  или же
  помогите мне подключить vpn
 

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

  • пакетный файл

2

Вы можете создать "фальшивую" функцию. Назовем это define. cmd и поместим в 9|findstr ":?"') сделать эхо %%j

Затем во все ваши пакетные файлы, для которых вы хотите, чтобы люди читали справку, добавьте строки справки, начинающиеся с :? , используя в качестве примера файл convertoupper.cmd :

 @echo off & set upper=
если "%~1" == "" выведите сообщение о неправильном использовании и вызовите define.cmd "%0"
если "%~1" == "/?" вызовите define.cmd "%0"
for /f "skip=2 delims=" %%I in ('tree "\%~1"') сделать, если не определен верхний набор "upper=%%~I"
установить "верхний=%верхний:~3%"
эхо %верхний%
перейти: eof
:? # помогите преобразовать в верхнюю часть
:? "определить %0" или "%0 /?" отобразит это содержание справки
:? Для получения дополнительной информации о конкретной команде введите HELP имя-команды
:? CONVERTTOUPPER Преобразует текст в верхний регистр.
 

Теперь вы можете запустить определить converttoupper или converttoupper /? . Если вы запустите converttoupper без каких-либо аргументов, она также отобразит ту же справку.

14

Ниже приведен пример безопасной обработки захвата аргументов и запросов справки.

После безопасного захвата аргументов Findstr используется для проверки содержимого на наличие допустимых переключателей справки:

Set Args | %SystemRoot%\System32\Findstr.exe /bli "Args=\/? Args=-? Args=Help?" > nul && (команды Rem)

  • Set Args : позволяет передать строку аргумента в findstr без риска сбоя из-за ядовитых символов.
  • /bli : findstr sawitches : соответствие литеральной строке в начале строки без учета регистра.
  • "Args=\/? Args=-? Args=Помощь?" : Список строк, разделенных пробелами; обрабатывается как строка совпадения a, b или c
  • > nul : Подавить вывод любого совпадения
  • && : Условный оператор; «При успешном выполнении команды»

Примечание. Завершение каждого переключателя справки с помощью ? позволяет использовать модификацию подстроки для удаления начального переключателя и пробела и прямого вызова метки с префиксом ключевого слова запроса

 @Echo off & SETLOCAL
================================================== =======================
Метод захвата Rem -- Arg представляет собой модифицированную версию метода Дэйва Бенхамса:
Рем -- https://www.dostips.com/forum/viewtopic.php?t=4288#p23980
SETLOCAL EnableDelayedExpansion
1>"%~f0:Params.dat" <"%~f0:Params.dat" ( SETLOCAL DisableExtensions Установить подсказку=# Эхо на Для %%a in (%%a) do rem . %*. Эхо выключено КОНЕЦЛОКАЛЬНЫЙ Установить /p "Аргументы =" Установить /p "Аргументы =" Установите "Args=!Args:~7,-2!" @Rem дублировать аргументы для подсчета двойных кавычек [деструктивных]. Установите "DQcount=!Args!" ) || ( Echo(%~nx0 требует, чтобы дисковая система NTFS функционировала должным образом. CMD/C Выход -1073741510 ) || Перейти:Eof Если не определено Args Goto:NoArgs REM заменяет двойные кавычки в клоне Args 'DQcount'; подсчитать подстроку в строке; REM оценивает, является ли счет четным; Если false "||": удалить двойные кавычки из строки. Если верно "&&" и если целое
Строка REM arg заключена в двойные кавычки, удалите внешние кавычки.
Установите Div="is=#", "1/(is<<9= %%G in ("!Args!") Сделать Endlocal и установить "Args=%%G" 2> nul
:NoArgs
================================================== ====================
Оценка запроса помощи Rem
(
Установить аргументы | %SystemRoot%\System32\Findstr.exe /bli "Args=\/? Args=-? Args=Help?" > ноль && (
Значение Rem Args имеет ведущий /? -? или помочь?
Если не "%Args:*?=%"=="" (
Значение Rem Args содержит ведущий /? -? или помочь? с дополнительным параметром
Вызов:%Args:*? =%_Синтаксис && Перейти к:Eof || (
Rem выходит после вызова информации о синтаксисе, если действителен параметр; иначе уведомлять о недопустимых и показывать допустимые синтаксические запросы.
Эхо (Неверный запрос: "%Args:*? =%": не соответствует допустимому запросу справки:
)
)
Rem показывает корректные синтаксические запросы.
Для /F "Tokens=1 Delims=:_" %%G in ('%SystemRoot%\System32\Findstr.