Написание бат файлов. Что такое bat-файлы и зачем они нужны

Использование графического интерфейса в операционных системах сегодня представляется чем-то само собой разумеющимся и совершенно естественным, но так было не всегда. Первая операционная система MS DOS, разработанная компанией Microsoft, не имела GUI, а управление выполнялось посредством ввода текстовых команд. С тех пор минуло без малого 40 лет, однако скриптовый язык командной строки по-прежнему пользуется популярностью, причём не только в среде разработчиков.

Командная строка не столь удобна, зато с её помощью можно выполнять недоступны из GUI операции. С другой стороны, запускать каждый раз консоль, вводить в неё одну за другой команды – всё это сильно замедляет работу. Впрочем, можно существенно упростить задачу, создав бат-файл или попросту батник – текстовый файл с расширением BAT, содержащий список инструкций, обрабатываемых командным интерпретатором CMD. Используются такие файлы для автоматизации разных задач, например, для удаления временных файлов по расписанию или запуска программ.

Как создать файл с расширением BAT

Итак, как создать bat-файл в Windows 7/10? Очень просто. Для этого понадобится любой текстовый редактор и знание основ командной строки. Можно использовать Блокнот, а ещё лучше Notepad++, так как последний имеет подсветку синтаксиса. Создайте в редакторе новый файл, в меню «Файл» выберите «Сохранить как», дайте будущему скрипту имя, а в выпадающем списке «Тип файла» выберите «Batch file (*bat; *cmd; *nt)».

Если для создания bat-файла захотите использовать Блокнот, расширение нужно присвоить вручную, а в списке «Тип файла» выбрать «Все файлы».

Как видите, создать файл с расширением bat не составляет сложности, есть тут, однако, свои тонкости. В командных файлах нельзя использовать перенос строк, кодировка bat-файла должна быть выставлена UTF-8, если в теле скрипта используется кириллица, кодировку нужно изменить, вставив в положенном месте команду chcp 1251.

Вместо расширения BAT можно использовать CMD, результат выполнения скрипта будет точно таким же.

Основные команды, синтаксис и примеры использования батников

Как сделать bat-файл вы знаете, теперь настала пора самого интересного, а именно синтаксиса языка интерпретатора CMD. Понятно, пустой батник работать не будет, он даже не запустится при двойном по нему клике. Чтобы скрипт сработал, в нём должна быть прописана хотя бы одна команда. Для наглядного примера посмотрим, как написать bat-файл для запуска программ. Допустим, приступая к работе, вы каждый раз запускаете три программы – Chrome, Firefox и VLC. Упростим задачу, создав скрипт, который будет сам запускать эти программы с интервалом в пять секунд.

Открываем пустой батник и вставляем в него такие команды:

Start "" "C:/Program Files/Google/Chrome/Application/chrome.exe" timeout /t 05 start "" "C:/Program Files/Mozilla Firefox/firefox.exe" timeout /t 05 start "" "C:/Program Files/VideoLAN/VLC/vlc.exe"

Команда start запускает исполняемый файл нужной программы, а команда timeout /t задаёт интервал между запусками. Обратите внимание на расположение кавычек – в них берутся пути, в которых имеются пробелы. Также если в пути есть кириллические символы, в начало скрипта следует вставить изменяющую кодировку команду chcp 1251 , в противном случае интерпретатор не сможет правильно прочитать путь.

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

Start /b "" "путь"

Может также статься, что в определённый момент потребуется приостановить выполнение скрипта, чтобы пользователь сам смог решить, выполнять ли все остальные команды или нет. Для этого существует команда pause . Попробуйте заменить ею timeout и увидите, что получится.

Start /b "" "путь" pause

Рассмотрим ещё один пример команд для bat файла. Напишем скрипт, который будет в одном случае выключать компьютер, а в другом – перезагружать его. Для этих целей мы будем использовать команду shutdown с параметрами /s , /r и /t . При желании можно добавить в батник запрос на выполнение действия, вот так:

@echo off chcp 1251 echo "Вы действительно хотите выключить компьютер?" pause shutdown /s /t 0

Поясняем. Первая команда скрывает текст самих команд, вторая – устанавливает кириллическую кодировку, третья – выводит сообщение для пользователя, четвертая – устанавливает паузу, пятая – выключает, а с ключом /r вместо /s перезагружает компьютер без традиционной задержки в одну минуту. Если не желаете церемониться с запросами и паузами, можете оставить только пятую команду.

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

Что ещё можно делать с помощью скриптов? Много чего, например, удалять, копировать или перемещать файлы. Допустим, у вас есть некая папка data в корне диска D, содержимое которой нужно очистить одним махом. Открываем батник и вставляем в него такую команду:

Del /A /F /Q "D:/data"

А можно и так:

Forfiles /p "D:/data" /s /m *.* /c "cmd /c Del @path"

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

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

Robocopy C:/data D:/backup /e pause

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

Запуск bat-файлов от имени администратора и по расписанию, скрытый запуск bat

Теперь вы знаете как создавать батники и имеете некое общее представление о языке интерпретатора CMD. Это были основы, теперь пришла пора познакомиться с некоторыми полезными особенностями работы с bat-файлами. Известно, что для выполнения некоторых действий программам нужны права администратора. Понадобиться они могут и батникам. Самый очевидный способ запустить скрипт от имени администратора, это кликнуть по нему правой кнопкой мыши и выбрать в контекстном меню соответствующую опцию.

Кроме того, можно сделать так, что конкретный батник будет запускаться с повышенными привилегиями всегда. Для этого необходимо создать на такой скрипт обычный ярлык, открыть его свойства, нажать кнопку «Дополнительно» и отметить в открывшемся окошке галочкой пункт «Запуск от имени администратора». Этот способ хорош ещё тем, что позволяет выбрать для ярлыка любой значок, тогда как файл с расширением BAT или CMD всегда будет иметь невзрачный вид.

Скрипты, как и все приложения, можно запускать по расписанию. Команда timeout /t здесь не совсем уместна, для отложенного запуска лучше всего использовать встроенный «Планировщик задач» Windows. Здесь всё просто. Открываем командой taskschd.msc Планировщик, определяемся с триггером, действие выбираем «Запустить программу» и указываем путь к bat-файлу. Вот и всё, скрипт будет запущен в положенное время.

И напоследок ещё один интересный момент. Когда вы запускаете bat-файл, на экране появляется, пусть даже на какую-то долю секунды, окно командной строки. А нельзя ли сделать так, чтобы скрипт выполнялся в скрытом режиме? Можно, причём несколькими способами. Самый простой заключается в следующем. Создаём на bat-файл ярлык, открываем его свойства и в меню «Окно» выбираем «Свёрнутое в значок». После этого единственным видимым признаком запуска скрипта будет появление значка CMD на панели задач, окон же при этом открываться не будет.

Если вы желаете полностью скрыть выполнение скрипта, можете воспользоваться «костылем» – скриптом VВS, который будет запускать ваш батник в скрытом режиме. Текст скрипта приведен ниже, сохраните его в файл hidden.vbs , предварительно заменив путь во второй строчке кода D:/sсript.bat путём к вашему батнику.

Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "D:\script.bat" & Chr(34), 0 Set WshShell = Nothing

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

А на этом пока всё. Информацию касательно создания скриптов BAT без труда можно найти в интернете. Неплохо также ознакомиться с учебником Уильяма Станека «Командная строка Microsoft Windows». Несмотря на то, что с момента издания книги прошло более десяти лет, содержащаяся в ней информация до сих пор актуальна.

В этой статье я приведу несколько примеров написания 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». Соглашаемся на изменение расширения, нажимаем «Да»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Включения и выключение служб 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 файла, ими и нужно запускать программы. Единственный минус такого решения — это невозможность одновременного использования обоих программ.

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

Особенностью файлов данного типа является отсутствие внутри какого-либо кода - имеется только тактовая информация, которую считывает и исполняет командный DOS-процессор, совместимый практически со всеми версиями операционной системы Windows. Одним из ярких примеров является файл autoexec.bat, который необходим для запуска этой ОС, так как именно он осуществляет ее настройки в ходе запуска.

Основные возможности командных файлов

Команды, которые содержит bat-файл, по функционалу можно условно разделить на несколько групп:

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

Выполнение командных файлов

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

При нахождении командного файла в другом каталоге необходимо кроме полного имени этого файла прописать полный путь до каталога его хранения. Расширение файла также можно не прописывать. Например, текущий каталог d:\photo\work, а командный файл vera.bat, который нужно выполнить с параметрами resize.doc и /p, находится в каталоге d:\photo\home. Тогда для того, чтобы осуществился запуск нашего файла, нужно прописать команду d:\photo\home\vera resize.doc /p или команду..\home\vera resize.doc /p.

Прерывание работы

Исполняемые после запуска команды bat-файлов можно прервать комбинациями кнопок + и +. На дисплее появится запрос на прерывание выполнения командного файла с запросом, ожидающим ввода Yes или No. Если ввести Y, то выполнение прервется, а оставшийся список команд bat-файла будет проигнорирован. Если введете символ N, то выполнение продолжится со следующей команды из списка.

Вызов другого командного файла

Bat-файлы могут содержать в себе ссылки на исполнение других скриптов. Если просто прописать в теле скрипта bat-файл, команды после него уже исполняться не будут, так как управление передается на другой батник и будут выполнены команды уже из него. Если требуется возврат после запуска внутреннего файла, то его можно вызвать командой CALL. Формат команды выглядит так: CALL имя-бат-файла [параметры запуска].

Параметрами, которые передаются вызываемому командному файлу (файлам), обычно являются символы %1 - %9. Когда команды bat-файлов все последовательно будут пройдены, продолжится выполнение исходного скрипта со следующей строки.

Пошаговое выполнение

Бывают случаи, когда команды bat-файлов нужно выполнить пошагово (с остановкой после каждой строчки). Наиболее часто такой режим требуется при отладке или тестировании скриптов. Написание команды выглядит так: COMMAND /y/c имя _скрипта [параметры].

При выполнении на каждую команду будет выдаваться запрос Y или N. Если требуется выполнение команды — жмем клавишу Enter или Y. Если нужно пропустить команду — жмем ESC или N.

Отключение и включение вывода команд на экран

Когда запускается bat-файл, команды построчно перед выполнением отображаются на экране и после этого выполняются. Иногда это вызывает неудобство, так как при большом батнике команды длинным списком пробегают перед пользователем на экране, а иногда требуется их показ, например, для диалога или отладки. Чтобы bat-файл команды выводил на дисплей, применяется команда ECHO ON. Для отключения этого режима нужно ввести ECHO с параметром OFF. При этом все исполняемые далее команды показываться на экране уже не будут.

Для отключения вывода только какой-либо одной строки батника на экран можно использовать в самом начале этой строки символ @. Чаще всего этот символ можно встретить в паре с командой @ECHO OFF для исключения вывода ее на дисплей монитора. Такой режим часто используют злоумышленники, создавая на основе bat-файлов вирусы или доставляя мелкие и крупные неприятности пользователям компьютеров.

Сообщения при исполнении команд

Если после команды ECHO будут расположены символы, отличные от ON или OFF, то они будут выводиться на экран в любом режиме. Если ECHO будет без параметров, то она выдает на экран состояние режима отображения исполняемых команд — включен или выключен.

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

Для воспроизведения звукового сигнала нужно вывести стандартный символ с кодом 7. Сделать это можно, нажав клавишу и «7» на цифровой клавиатуре (с надписью home).

Для того чтобы повысить удобочитаемость сообщений можно применить команду ECHO с параметром «.» (она ставится сразу за командой без пробела) или специальным символом с кодом 255. На экране это будет выглядеть как пустая строчка.

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

ECHO-сообщение >> имя файла — команда добавляет строчку в конец существующего файла. Если такого файла в данной директории нет, то создается новый файл.

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

Использование комментариев

Для удобства редактирования скриптов используется команда REM. Все находящиеся после нее команды bat-файлов Windows игнорирует при исполнении. Их можно увидеть при редактировании и при пошаговом режиме. Во всех других случаях комментарии на экран выводиться не будут.

Команда задержки в bat-файле

Иногда во время выполнения батника возникает необходимость временно остановить исполнение команд, например, для ожидания реакции пользователя, для увеличения времени на прочтение длинного сообщения, для вставки диска, подтверждения присутствия пользователя или для отладки пакетного файла. Команда задержки в bat-файле пишется как PAUSE без параметров. При этом на дисплее отобразится сообщение типа «Нажмите любую клавишу для продолжения», и выполнение скрипта будет приостановлено до нажатия кнопки клавиатуры. Если будет нажата комбинация + или +, то система воспримет это как завершение работы исполняемого файла и выдаст запрос на подтверждение завершения его работы: «Прервать выполнение командного файла? (Y/N)». Если нажать клавишу Y, то произойдет прерывание работы скрипта в этом месте и все оставшиеся невыполненные команды будут проигнорированы. При нажатии N выполнение будет продолжаться со следующей команды. При паузе нажатие любых других буквенно-цифровых клавиш, а также «Пробел» и «Ввод» выполнение исполняемого файла будет продолжаться со следующей команды.

списка файлов

Для последовательного исполнения нескольких файлов из списка, находящихся в одной директории, также можно использовать bat-файл. Команды «запуск программы по названию» и «запуск программы по расширению файла» часто могут помочь с автоматизацией обработки документов, например сортировка вложений почты. Отличаются они параметрами для команды FOR. Формат написания ее приведен ниже:

FOR %x IN (список файлов) DO команда, где:

Х - любой символ, за исключением цифр от 0 до 9;

Список — разделенные пробелами имена файлов или название одного файла; при этом можно использовать спецсимволы «?» и «*» для замены от одного до нескольких знаков в названии файлов;

Команда — любая DOS-команда или программа, кроме FOR; если есть необходимость использования FOR, то вместо %x нужно указать %%x.

При использовании этой команды для написания bat-файлов нужно учитывать, что имена в программах формата DOS имеют ограничение по длине названия. Для того чтобы произвести переключение команды FOR на работу с длинными именами файлов, нужно не забыть перед ней запустить команду LFNFOR ON для включения режима работы с длинными именами и LFNFOR OFF для его отключения и возврата к стандартной длине файлов.

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

Переходы в bat-файлах

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

Команда перехода имеет написание GOTO с названием метки через пробел. Если параметра нет или название метки в командном файле не обнаружено, то работа скрипта на этой команде прекращается. Пример:

REM (запускаются требуемые команды).

В этом примере последовательное исполнение командного файла, дойдя до GOTO zzz, переходит на метку:zzz и продолжается с REM, игнорируя все, что находится между командой перехода и указанной меткой.

Использование условий при работе с bat-файлами

Bat-файл может исполнять или не исполнять команды в зависимости от различных условий, если в нем применяется проверка наступления события IF. Формат этой команды выглядит как «IF условие команда».

Условие представляет собой различные варианты выражений:

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

СТРОКА 1 == СТРОКА 2 - в случае полного совпадения строк условие становится истинным. Вместо строк можно подставить символы %0 - %9, тогда будут сравниваться параметры командного файла.

EXIST - имя файла - если указанный файл существует, то условие истинное.

NOT - условие — если указанное условие ложное, то на выходе команды получим истинное значение.

Применяемые команды в bat-файлах

Если нажать кнопку "Пуск" и запустить командную строку (cmd), то можно посмотреть все вставляемые в bat-файл можно использовать как средство для отладки, как помощника, программу для получения сведений о командах. Для этого просто можно набрать HELP. При этом выдается список команд с краткими описаниями к ним. Для получения более детальной информации можно ввести HELP с названием нужной команды.

Использование bat-файлов при резервном копировании данных

Командные файлы сильно упрощают жизнь системным администраторам при осуществлении повседневной работы. Наиболее распространенной сферой их применения являются создание, удаление, переименование и многое другое. Все это основано на использовании команды bat-файла COPY. К примеру, можно создать программу, которая делает архивные копии документов из выбранной папки с пользовательскими данными определенных форматов, исключив, допустим, медиафайлы большого объема, обеспечив резервирование в папке с именем пользователя и и назвать ее "Команда_копирования_файлов.bat". После этого необходимо обеспечить ее запуск в определенное время с помощью встроенного планировщика или силами самой программы и тем самым обеспечить сохранность данных пользователя.

Как известно, операционные системы с графическими пользовательскими интерфейсами не всегда «хозяйничали» на компьютерах. Еще до их появления очень часто использовались DOS-подобные ОС, в которых для выполнения каких-либо действий необходимо было вводить специальные команды. И именно из них были позаимствованы принципы создания и выполнения так называемых пакетных файлов.

Несмотря на громкие заявления корпорации Microsoft о том, что поддержка MS-DOS была прекращена уже очень давно, если хорошенько вдуматься, нетрудно сообразить, что та же командная строка или консоль PowerShell работают как раз по тем же принципам. И для них иногда вписывать какие-то определенные команды, инициирующие выполнение тех или иных действий, совершенно необязательно. Можно запросто написать собственный код и сохранить его в специальном BAT-файле, после запуска которого действия будут выполнены автоматически. Но как создать BAT-файл в Windows 7 или ОС ниже или выше? Для этого есть несколько простых способов, о которых далее и пойдет речь. Но для начала необходимо выяснить, что это за объекты, и для чего они могут использоваться.

Что такое пакетный файл?

Вообще, на сегодняшний день различают две основных разновидности таких файлов, разделяя их исключительно по расширению: либо BAT, либо CMD. Поскольку такие объекты между собой и по содержанию, и по принципу выполнения очень похожи, чтобы не было путаницы, будем рассматривать именно вопросы, связанные с тем, как создать BAT-файл в Windows 7 и выше (хотя предлагаемые решения в равной степени относятся и к более ранним модификациям).

BAT-файл, или в простонародье «батник», представляет собой самый обычный текстовый документ, содержащий набор определенных команд, которые выполняются последовательно по мере перехода от одной строки кода к другой. Однако наборы могут содержать множество дополнительных операторов, включая зацикливание выполнения какого-то действия (loop) или переходы с соблюдением каких-либо условий (if, goto и т. д.). Если посмотреть на два вторых оператора, многим станет ясно, что они применялись еще в таких древних и примитивных языках программирования, к которым можно отнести тот же Basic. Несмотря на это, они и на современном этапе развития компьютерных технологий успешно используются и в более «продвинутых» языках (например, при написании скриптов на VB или в языке Pascal).

Для чего нужны

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

Примеры пакетных файлов Windows

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

Так, вероятно, все те пользователи, которые в свое время работали еще с первыми модификациями Windows, знают, что в них ранее присутствовал специальный файл Autoexec.bat, отвечающий за конфигурации системы при ее запуске, причем в него пользователь мог сам добавлять команды выполнения необходимых приложений вроде очистки дискового пространства, создания копий важных данных и т. д. Это только намного позднее в системе появился специальный конфигуратор, вызываемый командой msconfig.

Еще один достаточно необычный пример можно привести для планшетных ПК на основе Windows RT версий 8 и 8.1, в которых установка приложений производится исключительно через «Магазин» Windows, а стороннее ПО инсталлировать невозможно.

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

Не менее интересно выглядят и пакетный файл из набора Windows RT Development Tool, позволяющий перезапустить систему в режиме разработчика.

И уж, конечно, весьма необходимой утилитой оказалась программа SignTool, представленная как раз в виде пакетного BAT-файла, позволяющая выполнить для любого программного обеспечения и его компонентов в виде исполняемых файлов EXE и сопутствующих библиотек DLL, так сказать, «переподписание» с изменением исходной цифровой подписи на подпись Microsoft.

Как создать BAT-файл в Windows через «Проводник»?

Но вернемся к созданию пакетных объектов. Как создать BAT-файл, используя для этого встроенный файловый менеджера системы? Элементарно!

Через ПКМ на пустом пространстве в заданной локации выбираете раздел «Создать…», а затем переходите к пункту создания текстового документа. После появления его в рабочей области файл нужно просто переименовать, присвоив ему произвольное название и соответствующее расширение BAT через точку. Обратите внимание, что при выполнении такой операции отображение расширений должно быть включено в обязательном порядке.

Как создать файл с расширением BAT в «Блокноте»?

Поскольку, как уже было сказано выше, «батник» является текстовым файлом, есть еще одно решение, предполагающее использование стандартного текстового редактора «Блокнот». Как создать BAT-файл в этом случае? Тоже просто!

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

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

Использование файлового менеджера FAR

Наконец, рассмотрим, как создать BAT-файл в одном из популярных файловых менеджеров под названием FAR Manager, который был создан по образу и подобию «дедушки Нортона» (Norton Commander).

Для этого используется сочетание клавиш Shift + F4, после чего в поле имени файла вводится его название с расширением через точку, нажимается клавиша ввода, а сохранение пустого файла производится нажатием Shift + F2, что соответствует команде «Сохранить как…» (Save As…). Отредактировать содержимое с вводом необходимых команд можно через соответствующую функцию «Edit», вызываемую клавишей F4. Что касается команд, их лучше заранее изучить самому. Но всем тем, кто хочет, например, через BAT-файл создать папку, можно предложить команду MKDIR или ее сокращенный вариант MD FolderName, где FolderName - название каталога. По большому счету, команду можно усложнить, указав местоположение на диске и выбрав пользователя. Да и вообще, практически для всех команд можно применять абсолютно любые переменные, которые в командах заключаются в символы процентов с обеих сторон.

Эпилог

Вот и все что касается вопроса о том, как создать BAT-файл в Windows-системах, используя для этого несколько простейших средств. Какое из них является наиболее простым, решать самому пользователю, однако для удобства одновременно и создания «батника», и его редактирования лучше всего применять либо «Блокнот» (или другой аналогичный текстовый редактор), либо FAR Manager.

Большинство пользователей периодически выполняют повторяющиеся задачи, многие из которых можно заменить одной командой или запуском одного файла. Из статьи вы узнаете, как автоматически решать часто возникающие задачи, не используя при этом никакого дополнительного ПО. Речь идет о пакетных файлах, позволяющих осуществлять несколько действий автоматически, без участия пользователя. Необходимо лишь составить пакетный файл с перечнем команд и запускать его в случае надобности.

Технология пакетных файлов

Пакетные файлы (их также называют командными или bat-файлами) – текстовые документы с расширениями.bat или.cmd, содержащие последовательность команд, которые можно запустить подобно любому приложению Windows. Такая технология позволяет пользователю создавать программы пакетной обработки, выполняющие несколько последовательно записанных команд. Это очень удобно, если периодически приходится совершать повторяющиеся действия. Пакетные файлы предоставляют гибкие возможности создания сценариев, с их помощью возможно написание и маленьких линейных последовательностей команд, и сложных сценариев с условными ветвлениями и циклами. Технология файлов пакетной обработки используется во многих ОС и оболочках, среди которых Windows, OS/2, Mac OS и Linux-подобные системы.

Создание и использование

Начиная работу, нужно тщательно продумать последовательность команд, которые будут выполняться. Для написания пакетного файла необходимо создать текстовый документ с расширением.bat или.cmd, ввести в него нужные команды (каждую с новой строки) и сохранить. Это можно проделать в любом текстовом редакторе, скажем, в Блокноте , но если вы используете в командах пути к файлам с русскими символами или выдачу сообщений на русском языке, необходимо задействовать редакторы, которые поддерживают DOS-кодировку, например стандартный редактор менеджера FAR. В любое время доступно редактирование содержимого командных файлов. Рекомендуется также в целях безопасности просматривать их содержимое перед запуском, если они созданы не вами и получены из сомнительных источников.

Для выполнения такого файла необходимо запустить его, как и всякое приложение Windows. Каждая строка bat-файла представляет собой действие (команду). Это могут быть команды для работы с файлами и папками, запуск приложения или другого пакетного файла, работа с реестром, вывод на экран сообщений и т. д., можно выполнять любые действия, поддерживаемые интерпретатором командной строки. Для получения списка этих команд следует нажать (или Пуск→Выполнить… ), ввести в поле запуска cmd (command – для Windows ниже версии NT) и нажать ОК , после чего в открывшемся окне командной строки набрать help и нажать Enter . Детальную справку по конкретной команде можно получить, введя ее имя, пробел и /? , например copy /?Enter . Кроме команд командной строки, в пакетных файлах можно вызывать другие bat-файлы, внешние утилиты (и, допустим, defrag), а также любые приложения и сервисы (только для NT-систем).

Рассмотрим такой пример. Вы постоянно работаете с тремя файлами, которые находятся в разных каталогах жесткого диска, и часто создаете их резервные копии на USB-flash-drive. Для этого потребуется заходить в каждый каталог и копировать файлы по отдельности на флэшку. Если написать простенький пакетный файл, то перечисленные действия сведутся к его запуску. Предположим, что полные пути и имена файлов таковы: D:WorkProfits.xls, D:HomeHome.doc и C:MyDocsOplata.doc , а G: – съемный флэш-диск для резервной копии. Тогда нужный пакетный файл будет выглядеть так:

copy D:WorkProfits.xls G:Backup

copy D:HomeHome.doc G:Backup

copy C:MyDocsOplata.doc G:Backup

Первые три строки непосредственно копируют файлы в каталог Backup на USB-накопитель. В последней – команда ожидания нажатия любой клавиши. Она используется для того, чтобы после выполнения предыдущих команд не закрылось окно командной строки и можно было увидеть результаты выполнения bat-файла. Данный пакетный файл будет исполнен независимо от своего названия и местоположения на компьютере. Теперь для резервного копирования нужно только запустить созданный файл.

Пакетные файлы поддерживают передачу параметров командам. Это очень удобно, если необходимо создавать гибкие bat-файлы для автоматизации целого ряда типовых задач. Для передачи параметров надо при вызове после имени файла поставить пробел и указать один или несколько параметров. Запускать пакетный файл с параметрами можно либо из командной строки, либо с помощью созданного для него ярлыка. Однако в последнем случае теряется принцип универсальности, так как ярлык будет содержать вызов файла с заранее введенными параметрами. Можно также создать несколько ярлыков для запуска одного bat-файла с разными параметрами. В тексте пакетного файла параметры представляются с помощью знака % и номера параметра при вызове, начиная с 1.

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

copy D:WorkProfits.xls %1

copy D:HomeHome.doc %1

copy C:MyDocsOplata.doc %1

Теперь путь назначения файла будет указываться при запуске. Для резервного копирования на флэшку необходимо набрать в командной строке D:Mybatsbackup.bat G:Backup и нажать Enter. D:Mybatsbackup.bat – полный путь и имя исполняемого файла (если он находится в текущей папке – путь не обязателен), а G:Backup – первый параметр, определяющий местоположение резервных копий. При выполнении команды копирования вместо %1 будет подставлен первый параметр G:Backup . Используя переносной винчестер (H:) с папкой Copydir пакетный файл необходимо вызывать так: D:Mybatsbackup.bat H:Copydir . Если данный bat-файл был запущен без параметров, то указанные файлы скопируются в папку, где расположен пакетный файл. В данном случае файлы при копировании будут заменены без подтверждения, для выдачи же запроса подтверждения замены необходимо добавить ключ /-Y , тогда каждую команду копирования нужно записать так: copy /-Y D:WorkProfits.xls %1 . При создании пакетных файлов для резервного копирования рекомендуется изучить команду xcopy , которая представляет собой расширенную версию copy.

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

if not exist %1 mkdir %1.

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

Пакетные файлы, как и командная строка, предоставляют возможность работы с переменными окружения, которые хранят различные системные параметры. Перечень переменных окружения можно получить в разделе «Общие сведения о командной оболочке» справки Windows. Например %WINDIR% – размещение каталога ОС Windows, а %TEMP% и %TMP% содержат пути к системной и пользовательской папкам для временных файлов соответственно.

Рассмотрим следующий пример. Многие пользователи иногда очищают содержимое временных каталогов. Для этого необходимо перейти в соответствующую папку (их может быть и две), выделить содержимое и удалить. После написания простенького bat-файла очистка временных каталогов выполняется запуском файла с Рабочего стола. К тому же саму папку удалить нельзя, а при выделении ее содержимого мышкой без использования специальной команды (Выделить все или Ctrl+A ) все скрытые файлы и папки останутся нетронутыми. Итак, содержимое файла:

del /F /S /Q %temp%

del /F /S /Q %tmp%

Первые две строки выполняют удаление содержимого системной и пользовательской папок для временных файлов. Для команды del использованы специальные модификаторы (ключи): /F – удаление файлов, помеченных «только для чтения», /S – удаление из всех подкаталогов, а /Q избавляет пользователя от подтверждения. Справку по этой и другим командам интерпретатора со всеми возможными модификаторами можно получить, набрав имя команды /?Ente r. Последняя команда pause необходима, если вам интересен отчет об удалении файлов.

.bat или.cmd

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

Пакетные файлы (.bat) использовались еще в ранних версиях MS-DOS как средство выполнения нескольких команд. Эти файлы выполнялись командным интерпретатором command.com и были основным средством автоматизации.

Начиная с Windows NT, используются командные файлы (.cmd), но пакетные также поддерживаются. Командные файлы являются усовершенствованной технологией пакетных и выполняются интерпретатором cmd.exe.

Пакетные файлы поддерживаются вплоть до Win-dows Vista, но обладают ограниченным набором команд по сравнению с командными файлами и выполняются медленнее.

Варианты запуска

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

С помощью Планировщика заданий возможно планирование запуска bat-файлов по расписанию в выбранное время в определенные дни недели автоматически, один раз или периодически. Для этого в Панели управления следует запустить апплет Назначенные задания и с помощью Мастера планирования заданий создать необходимое расписание.

Существует также возможность автозапуска пакетных файлов без использования Планировщика при загрузке ОС, для чего есть несколько способов, простейшим из которых является создание ярлыка к нужному файлу и помещение его в папку Пуск→Программы→Автозагрузка. Для автоматического запуска пакетных файлов можно также использовать дополнительное ПО.

Полезное применение

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

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

Bat-файлы и Windows Vista

Как и ее предшественники, Windows Vista поддерживает технологию пакетных и командных файлов. По сравнению с XP увеличилось количество выполняемых интерпретатором команд, а также расширилась функциональность некоторых ранее существующих команд. Сохраняется восходящая совместимость: bat-файлы, созданные в предыдущих версиях Windows, будут корректно работать под управлением Windows Vista. Полный перечень команд может быть получен из справки командной строки описанным выше способом. Возможен запуск созданных файлов вручную или автоматически. Для выполнения пакетным файлом некоторых системных действий необходимо запускать его с правами администратора.

Ссылки по теме

coop.chuvashia.ru/kartuzov/os/Articles/05/Bat_NT.htm – статья, посвященная командным файлам NT; рассмотрен синтаксис, описание команд и типовые примеры

www.firststeps.ru/msoffice/win/bats/bats1.html – руководство по созданию и использованию пакетных файлов под Windows 98, но будет актуально и для более новых ОС

www.windowsfaq.ru/content/category/3/7/45 – ряд статей об использовании пакетных и командных файлов с наглядными примерами

megakomp.info/engine/print.php5?newsid=55&news_page=1 – несколько полезных примеров использования командных и пакетных файлов

www.osp.ru/win2000/2006/08/3829295 – советы и рекомендации по использованию файлов пакетной обработки с примерами

www.shkolazhizni.ru/archive/0/n-2425 – статья посвящена ускоренному выключению компьютера с помощью пакетного файла

www.ttgdt.edu.ru/students/learn/bat_files.html – описание команд и синтаксиса bat-файлов с примерами

www.megalib.com/books/1487/page2245.html – общие сведения по применению.bat- и.cmd-файлов

www.securitylab.ru/processinfo/267532.php – описание команды at (запуска программ и пакетных файлов по расписанию)



Просмотров