bat-file

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

Пакетный файл (batch file) — это текстовый файл в MS-DOS, OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором. После запуска пакетного файла программа-интерпретатор (как правило, COMMAND.COM или cmd.exe) читает его строка за строкой и последовательно исполняет команды. Пакетный файл — аналог скриптовых файлов командной строки (shell script) в Unix-подобных операционных системах.

Пакетные файлы в DOS имеют расширение .BAT; для других операционных систем они могут иметь другие расширения — например, .CMD в Windows NT и OS/2 или .BTM в 4DOS (англ.) или подобных оболочках.

Чтобы создать исполнительный файл в операционной системе windows достаточно всего двух действий:

  • Выбираем папку расположение будущего bat-файла
  • Щелкаем правой кнопкой мыши и выбираем: создать > текстовый документ
  • Задаем название файлу и меняем расширение .txt на .bat, например должно получиться «file.bat». Соглашаемся на изменение расширения, нажимаем «Да»

sozdanie-bat-fayla

sozdanie-bat-fayla-2

Всё! Исполнительный файл готов. Осталось только добавить в него команды. Для этого нажимаем по нему правой кнопкой мыши и выбираем «изменить». В открывшемся окне текстового редактора и вводятся команды.

Вывод текстовых сообщений

Для вывода текста на экран существует команда ECHO. После команды пишем текст для вывода. Например, в bat файле записываем строки:

 

echo привет мир!
pause

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

sozdanie-bat-fayla-3

Как видно из рисунка текст выводится, но есть проблемы с кодировкой. Для отображения русских символов добавим в самое начало команду Chcp <код_кодировки>. Приведу пример кодировок:

  • 1251 – Windows (кириллица);
  • 866 – DOC-кодировка;
  • 65001 – UTF-8;

Изменим код нашего исполнительного файла на такой:

@echo off
Chcp 1251
echo привет мир!
pause

Команда @echo off служит для отключения вывода адреса и текста самой команды. Русский текст отображается.

sozdanie-bat-fayla-4

Ввод данных пользователем

Часто для решения каких-либо задач требуется вручную задать значения переменных. Рассмотрим такой пример, исполнительный файл спрашивает имя пользователя, далее выводит текст «привет <имя>».

@echo off
Chcp 1251
set /p input=»Ваше имя: »
echo Привет, %input%
pause

Командой SET мы создаем переменную input и присваиваем ей значение введенное пользователем. Для вывода значения переменной заключаем её имя в знак %.

sozdanie-bat-fayla-5

 

Включения и выключение служб windows

Иногда встречаются ситуации, когда службы программ конфликтуют между собой. Например такая ситуация наблюдается с программами TecDoc и ETK BMW (это каталоги автомобильных запчастей, ошибка службы Transbase). Пока запущена служба одной программы — не запустится служба второй, а следовательно и сама программа. Ситуация решается несколькими строчками в исполнительном файле:

@echo off
net stop Transbase
net start Transbase TECDOC CD 2_2015 Service
start «» «C:\TECDOC_CD\2_2015\pb\tof.exe»

Команды net stop и net start выключают и включают службы windows. Команда start «» <путь> запускает программу. Таким образом если включена мешающая программе служба, то она выключится и запустится нужная, и только после этого произойдёт запуск программы. Создаем второй исполнительный файл, меняем службы местами и прописываем пусть к второй программе. Готово! У вас два bat файла, ими и нужно запускать программы. Единственный минус такого решения — это невозможность одновременного использования обоих программ.