Написание bat файлов — примеры батников
В данной статейки мы рассмотрим такую полезную вещь как «батник». Давайте сначала дадим определение, что такое bat файл. Пакетные или batch файлы — это простые текстовые файлы, содержащие наборы команд (инструкцию) интерпретатора и имеющие расширение bat или cmd (cmd работают только в ОС семейства NT). Создавать и редактировать такие файлы можно при помощи обычного блокнота или любого другого текстового редактора.
Теперь Вы спросите, зачем нужно уметь писать такие бат файлы? И зачем они нужны? Попытаюсь объяснить.
Во-первых, они используются для облегчения работы, т.е. например Вам нужно постоянно выполнять какую-нибудь операцию каждый день (например, создавать архив тех или иных документов), с помощью батника это можно автоматизировать, и Вы в этом уже не будете принимать участия.
Во-вторых, эти пакетные файлы очень мощные (если конечно уметь их писать), т.е. Вы можете даже написать неплохую программу (я имею в виду по функционалу). Лично мне они очень помогают в работе, и о некоторых вещах я уже просто забыл, когда это делал я в ручную.
Теперь перейдем непосредственно к основам этих батников. Как же они создаются, Вам нужно просто создать простой текстовый документ открыть его и сразу на вкладке «Файл->сохранить как», вписать вместо расширения «Текстовый документ.txt», например «Текстовый документ.bat» и сохранить, вот и получится у нас батник с расширением .bat, но он пока ничего не делает.
Для начала я приведу пример батника, который я использую у себя на работе для архивации документов.
Теперь немного расскажу, что делает этот батник. Запускается WinRar, потом идут команды винрара:
- a — это добавить в архив;
- -r — обрабатывать вложенные папки;
- -dh — открывать совместно используемые файлы;
- -ed — не добавлять пустые папки;
- YYYY-mm-dd — добавляем к имени архива текущую дату (формат даты);
- E:\arhaccounts\ — путь, где будет лежать конечный архив;
- d:\accounts\*.doc — путь и маска файлов, какие нужно заархивировать.
В данном случае мы архивируем все документы Word, Excel и текстовые файлы, архивировать остальные нам не требуется. У нас архивация идет на другой диск, и мы еще копируем полученный архив на другой компьютер, для того чтобы архивы хранились и в другом кабинете. Копирование идет по сети соответственно компьютер, на который копируется архив, должен быть включен. Для этого можно использовать такую команду:
Примеры команд для bat файлов
Теперь рассмотрим основные команды, которые Вы можете использовать.
Если Вам нужно удалить файл пропишите следующие:
Для того чтобы удалить весь каталог пропишите:
Вдруг Вам нужно удалять каждый раз все из какого-нибудь каталога, то используйте вот что:
- del d:\file\ — это как раз и есть удаление всех файлов;
- echo Y| — команда подтверждает удаление т.к. если не прописать эту команду, то Вы увидите сообщение о подтверждение удаления – «Продолжить [Y(да)/N(нет)]», и Вам нужно будет каждый раз отвечать на этот вопрос.
Сейчас давайте рассмотрим пример посложней, в котором уже выполняется условие:
Теперь объясняю, допустим, Вам нужно разархивировать архив test.rar, в котором будет много файлов, но если там окажется файл 123.rar его нужно будет разархивировать в корень диска C, а остальные файлы чтобы остались в том же каталоге не тронутыми.
По порядку, команда @echo off нужна, для того чтобы на экране у нас ничего не отражалось (в принципе, если не нужно можете не писать эту строку). Далее у нас запускается винрар и распаковывает архив test.rar в папку test. Затем идет условие, если в папке test (после распаковки test.rar) у нас не окажется файла 123.rar, то у нас просто выполнение батника переходит к строке :1 и потом просто удаляется файл test.rar за не надобностью т.к. все что нам нужно мы уже распаковали. Но если там оказывается файл 123.rar, то выполнение батника переходит к строке :2, после которой уже идет распаковка файла 123.rar в корень диска C. Другими словами у нас выполняется условие, если есть файл то делать это, если нет файла, делать вот это. Допустим, если не прописать условие в данном примере, то у нас батник выдаст ошибку, тогда когда у нас не окажется файла 123.rar в данной папке.
А сейчас рассмотрим такой пример, допустим, Вам нужно каждый раз перемещать из каталога расположенного на диске D файлы на флешку. Вы каждый раз должны будете заходить мой компьютер диск D, выбирать нужную папку, выделять все файлы из нее и вырезать, а потом только заходить на флешку и вставлять. С помощью батника это делается в один клик (с одним условием, что флешка каждый раз будет, например диском G или тем какой у Вас). Вот пример такого батника:
И все файлы с расширением doc, которые находятся в каталоге D:\catalog будут перемещаться на флешку. Теперь хочу сказать, что в батниках можно использовать сценарии (скрипты) при помощи Windows Scripting Host и если нужно, например чтобы выводилось сообщение, после того как файлы скопированы (предыдущий пример) вставьте вот это:
На самом деле про написание батников можно разговаривать много и в одну статью это, конечно же, не уместить, здесь я показал всего лишь принципы, которые используются при написании bat файлов, так сказать основу. Если Вы хотите узнать больше команд для написания батников, Вы можете легко посмотреть их, набрав в командной строке (Пуск — Выполнить – cmd) команду help, но там, конечно же, не все команды, что можно использовать в батниках. Удачи в написание BAT файлов (батников).
Источник статьи: http://info-comp.ru/obucheniest/81—bat-.html
Создание BAT файлов
Люди, которым знаком термин батник , знают, что BAT файлы могут существенно упростить жизнь и экономить время, если уметь их правильно писать и использовать. В этой статье я расскажу о том, как создавать BAT файлы и познакомлю вас с распространенными ошибками, которые обычно возникают при их написании.
Создать BAT файл очень просто. Достаточно открыть блокнот и сохранить пустой лист с расширением .bat , выбрав опцию Сохранить как. и написав в поле Имя файла что-нибудь оканчивающееся на .bat , например test.bat .
Тип файла указываете как на скриншоте ниже — Все файлы . Сохраняете и получаете BAT файл.
Редактировать BAT файл можно в блокноте или любом другом текстовом редакторе, ориентированным на работу с кодом.
Теперь перейдем непосредственно к практической информации. В сети многие ищут ответ на вопрос Как быть с пробелами в BAT файлах? . В путях к папкам и исполняемым файлам наличие пробела вызывает ошибку. Самый распространенный ответ: Заключи путь в кавычки . И этот ответ не верен. Правда некоторые будут с пеной у рта утверждать, что он работает. Итак, появилось два почему — почему не верен и почему некоторые будут .
На Windows (как, впрочем, и на UNIX) установленные в системе программы соответствующим образом регистрируются системой. Поэтому некоторые из установленных программ могут запускаться одной простой командой из BAT файла или из апплета Выполнить панели Пуск . Одной из таких программ является Firefox:
Если после этой команды писать путь к исполняемому файлу, то происходит следующее: запускается обозреватель Firefox и пробует обработать запрос, то есть файл, путь к которому указан. То есть, если указать следующее:
Обозреватель откроется, чтобы не было написано после start firefox . Именно поэтому некоторые товарищи будут уверять что все прекрасно работает. Однако, если взять портативную программу, то ситуация окажется совсем иная. Рассмотрим в качестве примера ftp-клиент Filezilla. Поскольку система не знает о программе, вышеупомянутая строчка
работать не будет. Чтобы запустить неизвестную системе программу, надо указать к ней путь:
Длинныe имена в bat-файлах
Теперь поговорим о путях и пробелах. Первый способ избежать этой проблемы — использование короткого имени.
В примере два имени с пробелами. Заменим их короткими. Правила создания коротких имен следующие: в коротком имени используются первые шесть символов имени без учета пробелов, после имени указывают порядковый номер папки с помощью символа
. Так как папки Program Files и Sound Club у меня в единственном числе, получится следующее:
Если рядом будут присутствовать две папки, например Sound Club и Sound Clown , то следуя правилам, в примере выше надо будет указать SoundC
2 , так как в этом случае Sound Club окажется вторым именем (имена считаются в алфавитном порядке).
Но этот способ неудобен тем, что приходится указывать порядковые номера. Ситуация с Program files более менее нормальная. Мало у кого встретится две подобные папки на системном диске. Но если вы решили установить несколько продуктов Mozilla на свой компьютер. У вас получится несколько папок, например:
Короткими именами для них будут
А теперь представьте, что вы написали BAT файл с упоминанием этих программ. Если удалить Firefox, оставшиеся записи перестанут работать, а если удалить Thunderbird, перестанет работать запись для Sunbird. Короче, способ с короткими именами — не наш способ.
Пробелы и кавычки в bat-файлах
Кавычки на самом деле работают, но не с теми способами, которые обычно советуют. Советуют обычно следующее:
Так команда не сработает, поскольку если посмотреть справку по ней ( start /? ), то в справке вы увидите следующее:
Как видите, первым параметром идёт заголовок окна и он как раз в кавычках. Этот параметр необязательный, но его всё же советуют указывать (например, тут), чтобы избежать ошибок при выполнении команды. Внутри кавычек можно ничего не писать. Получится так:
Также сработает и вариант с заключением в кавычки всех имён с пробелами по отдельности:
Однако, в ряде случаев не работает ничего из вышеописанного. В таких случаях я могу посоветовать использовать команду cd . Переходим на системный раздел, затем с помощью cd в папку Program Files и запускаем программу ( start ):
Я думаю, что такой способ будет работать везде. Теперь еще пара важных моментов. Допустим вы создали батник, запускающий три программы и вам нужно на время исключить запуск одной из трех. Это можно сделать удалением строки или ее комментированием. Первый способ — вандальный, а второй смотрите ниже.
В данном случае отключен запуск установленной в системе программы Defraggler.exe. Комментируют строки, указывая команду rem в начале строки. Все BAT файлы выполняются в окне консоли. Чтобы оно исчезало по окончании выполнения команд, не забывайте в конце писать команду на выход exit.
Запуск приложений из bat-файла
В первой части статьи я в общих чертах рассказал о BAT файлах. Теперь стало понятно — что это такое и с чем его едят. Во второй части речь пойдет уже о более конкретных вещах. Например, о том, как при помощи BAT файла запустить несколько приложений с определенными настройками или в автоматическом режиме установить программу, чтобы не тратить время на ответы типа Вы согласны с условиями лицензионного соглашения? и не нажимать лишние кнопки.
Выше было изложено несколько способов запуска приложений при помощи BAT файла. Самый первый — это короткая команда на запуск установленной в системе программы.
Это не всегда работает. Поэтому такой прием можно вполне применять на какой-то конкретной системе, но в качестве универсального решения он не подходит. Если есть цель заставить работать BAT файл везде и всегда, нужно пользоваться полными путями:
Также я отметил, что в BAT файле обязательно должна присутствовать команда на завершение:
Запуск программ в bat-файлах с параметрами (ключами)
Программу можно не просто запускать, а давать ей дополнительные команды при запуске. Например, скомандовать запускаться свернутой:
Скомандовать в данном случае — значит указать ключ. Ключ указывается через слэш после основной команды ( команда /ключ ). Основной командой в данном случае является start . Правда ключ min работает только в половине случаев, потому как относится именно к команде запуска start , а не к программам, которые эта команда запускает.
Вообще ключей существует очень много и наборы ключей разных программ могут существенно различаться. Есть, правда, несколько общих. Например, ключ справки ( /? или /help ). Чтобы проследить работу этого ключа, рассмотрим практический пример. Откройте консоль (Жмёте + R , вводите cmd , далее Enter ) и набираете в консоли следующее:
Консоль выведет на экран перечень допустимых ключей c комментариями для команды start .
Обратите внимание на ключ /wait . В некоторых случаях он бывает просто незаменим. Например, вы решили с помощью BAT файла распаковать архив с программой и эту самую программу запустить. В батнике получится две команды — на распаковку и на запуск. Поскольку команды при запуске BAT файла выполнятся почти одновременно, архив распаковаться не успеет и запускать будет нечего. Поэтому будет ошибка. В этом случае на помощь придет ключ /wait:
Таким образом система сначала выполнит первое действие, дождется его завершения и только после этого приступит ко второму. Если необходимо подождать конкретный отрезок времени, то проще воспользоваться консольной утилитой Sleep. В нужном месте BAT файла пишете следующую команду (число — количество секунд):
С помощью ключей можно делать многое. Есть возможность устанавливать приложения в тихом режиме. Для этого используется несколько ключей в зависимости от типа инсталятора, применяющегося для установки программы на компьютер:
В ряде случаев бывает очень удобно. Антивирус Avast имеет опцию тихой установки в корпоративной версии. В бесплатной (домашней) версии тихой установки якобы нет. Однако, если вы в курсе как работает инсталятор InstallShield , вы поймете, что это утка , так как этот инсталятор сам по себе поддерживает ключ тихой установки /S . А значит все продукты, выполненные на его базе — тоже. И Avast не исключение. Просто создаете в папке с Avast’ом BAT файл с содержанием
запускаете его и программа устанавливается на компьютер практически без вашего участия. Таким образом можно написать целый список программ для тихой установки и сэкономить время, например, на переустановке системы. В статье про тихую установку можно получить более подробную информацию по ключам.
Есть и другие возможности по управлению программами при помощи BAT файлов. Можно запустить программу, приказав ей открыть файл при запуске. Я пользуюсь этим способом при разработке сайтов. Очень удобно, когда весь твой инструментарий открывает нужные документы и папки нажатием всего одной кнопки:
Отмечу, что все вышеописанные приемы можно применять в различных комбинациях и сочетаниях.
Но важно помнить: всё, что касается выполнения запускаемой в батнике программы, пишется с ней в одной строке.
В качестве эпилога предложу для ознакомления конвертер BAT файлов в приложения формата .exe — Bat_To_Exe_Converter. BAT файл — это не всегда эстетично, а с помощью конвертера можно запаковать батник в exe’шник, оформив его любой иконкой на ваш выбор.
Наткнулся ещё на один конвертер BAT в EXE, можете рассмотреть в качестве альтернативы предыдущей программе: Advanced Bat To Exe Converter
Источник статьи: http://nevor.ru/stati/operacionnye-sistemy/stati-dlya-windows/sozdanie-bat-fajlov