Как сделать комментарии в bat
Написание bat файлов — примеры батников
В данной статейки мы рассмотрим такую полезную вещь как «батник». Давайте сначала дадим определение, что такое bat файл. Пакетные или batch файлы — это простые текстовые файлы, содержащие наборы команд (инструкцию) интерпретатора и имеющие расширение bat или cmd (cmd работают только в ОС семейства NT). Создавать и редактировать такие файлы можно при помощи обычного блокнота или любого другого текстового редактора.
Теперь Вы спросите, зачем нужно уметь писать такие бат файлы? И зачем они нужны? Попытаюсь объяснить.
Во-первых, они используются для облегчения работы, т.е. например Вам нужно постоянно выполнять какую-нибудь операцию каждый день (например, создавать архив тех или иных документов), с помощью батника это можно автоматизировать, и Вы в этом уже не будете принимать участия.
Во-вторых, эти пакетные файлы очень мощные (если конечно уметь их писать), т.е. Вы можете даже написать неплохую программу (я имею в виду по функционалу). Лично мне они очень помогают в работе, и о некоторых вещах я уже просто забыл, когда это делал я в ручную.
Для начала я приведу пример батника, который я использую у себя на работе для архивации документов.
Теперь немного расскажу, что делает этот батник. Запускается WinRar, потом идут команды винрара:
В данном случае мы архивируем все документы Word, Excel и текстовые файлы, архивировать остальные нам не требуется. У нас архивация идет на другой диск, и мы еще копируем полученный архив на другой компьютер, для того чтобы архивы хранились и в другом кабинете. Копирование идет по сети соответственно компьютер, на который копируется архив, должен быть включен. Для этого можно использовать такую команду:
Примеры команд для bat файлов
Теперь рассмотрим основные команды, которые Вы можете использовать.
Если Вам нужно удалить файл пропишите следующие:
Для того чтобы удалить весь каталог пропишите:
Вдруг Вам нужно удалять каждый раз все из какого-нибудь каталога, то используйте вот что:
Сейчас давайте рассмотрим пример посложней, в котором уже выполняется условие:
Теперь объясняю, допустим, Вам нужно разархивировать архив 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 файлов (батников).
BAT файлы – примеры батников (Часть 2)
Как показал опыт пакетные файлы, т.е. батники очень популярны среди системных администраторов, которые используют их в своих целях автоматизации. И сегодня мы продолжаем изучать эти самые bat файлы, рассматривать основы мы не будем, а перейдем уже к более продвинутым вещам.
В первой статье Написание bat файлов — примеры батников мы рассмотрели простые примеры использования батников, но как оказалось написание батников очень интересно практически всем и уже все хотят узнать что-то более сложное, с помощью которого можно еще больше упростить автоматизацию некоторых процессов.
Пример 1 – удаление старых архивов
При архивировании чего-либо, многих интересует вопрос «Как удалять старые архивы за ненадобностью с помощью батника?». Например, все они лежат в одной папке и нужно удалять все архивы, которые старше 14 дней. После того как я почитал мануалы, полазил в Интернете, я могу предложить следующий способ.
Можно сделать так, что в папке с архивами будут храниться только определенное количество архивов, соответственно последних (т.е. как раз в нашем случае за последние 2 недели).
Это делается с помощью двух команд. Первая, это DIR, т.е. просто считываем все файлы в одной папке, и записываем их название в текстовый файл.
dir D:\arhiv\*.rar /a:-D/b/o:-D > list_of_files.txt
Вот мы считали все наши архивы и записали их в файл, далее нам нужно перебрать все эти файлы и оставить только 14 штук, т.е. за последние 2 недели. Это делаем с помощью команды FOR, это своего рода цикл, который выполняет определенное действие для каждого файла в папке или каждой строки в файле, как в нашем случае.
for /F «skip=13» %%i in (list_of_files.txt) do (del /Q «%%i»)
Итого у нас получился вот такой батник:
dir D:\arhiv\*.rar /a:-D/b/o:-D > list_of_files.txt
for /F «skip=13» %%i in (list_of_files.txt) do (del /Q «%%i»)
Соответственно после этих строк можете писать сам код архивации, и в итоге у нас получится то, что в нашей папке будет храниться только 14 архивов, конечно же, самых последних.
Пример 2 – использование переменных
В батниках можно даже использовать переменные, как в настоящем языке программирования. Рассмотрим простейший пример использования переменных, например, мы хотим умножать на 2 число, которое мы введем в поле при запуске батника.
@echo off
SET a=2
SET /p b=[введите второе число для умножения]
SET /a c=%a%*%b%
echo %c%
pause
Как вы поняли, переменные задаются с помощью команды SET. Для того чтобы использовать переменную в дальнейшем мы с обеих сторон переменной подставляем знак процента (%), для того чтобы командная строка поняла, что это именно переменная.
Кстати, для того чтобы у Вас русские буквы нормально отображались в командной строке, сохраните бат файл в кодировке DOS-866.
С переменными разобрались, теперь давайте, применим это к нашему первому примеру, допустим, мы хотим оставлять не 14 архивов, а то количество, которое сами захотим, для этого мы с Вами при запуске батника будем вводить число архивов, которое нужно сохранить. Получится примерно вот так:
@echo off
SET /p chislo=[сколько архивов сохранить?]
dir D:\test\*.rar /a:-D/b/o:-D > list_of_files.txt
for /F «skip=%chislo%» %%i in (list_of_files.txt) do (del /Q «%%i»)
Ну вот, примерно так, конечно на практике может это и не понадобится, но зато мы узнали, как можно использовать переменные.
Про переменные хочу еще сказать, что есть такие системные переменные как:
%DATE% — показывает текущую дату.
%TIME% — показывает текущее время.
Для примера выполните следующий код:
echo %DATE%
pause
Переменную %TIME% я написал именно таким образом, для того чтобы результат вывелся в более читабельном виде, попробуйте написать %TIME% и % TIME:
0,-3% у Вас, во втором случае уберутся 3 последних знака.
На самом деле системных переменных больше, просто эти могут потребоваться чаще остальных.
Пример 3 – оператор условного выполнения IF
Как и в других полноценных языках в батниках можно использовать оператор условного выполнения IF. Приведем небольшой пример, батник просто проверяет, существует файл или нет:
@echo off
IF EXIST test.txt (
echo Файл существует
) ELSE (
echo Файла такого нет
Pause
IF EXIST test.txt – это как раз и идет проверка на наличие файла.
После, в скобках, идет то, что мы хотим сделать, если файл существует, а если файла не существует, то после ELSE, идет то, что нужно выполнить при отсутствии файла.
Теперь немного модифицируем наш пример с умножением на 2 введенное нами число, просто, если вдруг мы введем ноль, мы выведем соответствующие сообщение и попросим ввести заново число.
@echo off
SET a=2
:metka
SET /p b=[введите второе число для умножения]
SET /a c=%a%*%b%
if %c%==0 (echo вы ввели число 0, введите другое) else echo %c%
if %c%==0 (goto:metka)
pause
Тут уже все знакомо, единственное, что при сравнении переменной «c» используется оператор сравнения == (два равно), так как просто равно (=) — это оператор присваивания. Если Вы заметили я здесь использовал оператор goto, т.е. переход к нужной метки. Другими словами, ставим метку и в зависимости от результата проверки условия, будет осуществлен переход к нужной метке.
Теперь хотелось бы отметить то, что многие используют в работе, например, для создания архива, программу winrar и, конечно же, используют ее в своих батниках, но многие задают вопросы по ключам, которые относятся к winrar. Вы не путайте ключи winrar, они используются только для этой программы, а не для всего, что есть в батниках, т.е. командной строке, например, если Вы используете 7zip, то ключи уже будут другие. Что касается ключей winrar то, полный и лучший справочник, на мой взгляд, есть, конечно же, в самом winrare. Для того чтобы посмотреть описание ключей winrar, откройте программу winrar зайдите в меню Справка, затем нажмите «Содержание», а далее выберите в самом содержание строку «Режим командной строки», где и будет описание всех ключей, даже приводятся простенькие примеры. Соответственно если у Вас английская версия winrar, то смысл такой же, только будет все на английском языке.
На этом вторая наша часть изучения батников закончена. Удачи!
Как создать BAT файл в Windows 10
22.05.2020 Система 592 Просмотров
BAT файл (или пакетный файл) – это текстовый файл с расширением BAT, в котором хранится список команд. Запуск такого файла позволяет выполнить все сохраненные в нем команды одна за одной.
Пакетные файлы используются для запуска программ и автоматизации рутинных или часто повторяющихся задач. В данной инструкции мы рассмотрим два способа, как создавать BAT файлы в операционной системе Windows 10.
Самый простой вариант создания BAT файлов в Windows 10 это создание через « Блокнот » или другой простой текстовый редактор. Чтобы запустить « Блокнот » можно воспользоваться поиском в меню « Пуск » или нажать комбинацию клавиш Win-R и выполнить команду « notepad ».
После открытия программы « Блокнот » в нее нужно вставить команды для выполнения. Для примера введем команду, которая выполнит 100 запросов ping к домену Google.
После ввода команд, документ нужно сохранить с расширением BAT. Для этого открываем меню « Файл – Сохранить как » или используем комбинацию клавиш Ctrl-Shift-S.
Дальше откроется стандартное окно для сохранения документов. Здесь нужно указать папку для сохранения, выбрать « Тип файла – Все файлы (*.*) » и ввести имя файла с расширением BAT (.bat). Например, можно ввести « Ping.bat ».
Обратите внимание, если вы запустили « Блокнот » без прав администратора, то сохранить файл на системный диск ( C:) не получится. В этом случае его можно сохранить в папку пользователя или на другой диск и потом переместить.
После сохранения в выбранной вами папке появится готовый к использованию BAT файл. Если вам понадобится его отредактировать, то для этого нужно кликнуть по нему правой кнопкой мыши и в открывшемся меню выбрать « Изменить ».
После этого BAT файл откроется в редакторе « Блокнот », и вы сможете изменить его содержимое.
Также в Windows 10 можно создавать BAT файлы с помощью переименования обычных текстовых файлов. Другими словами, вы можете сначала создать обычный текстовый документ с расширением TXT, сохранить в него все нужные команды, и уже потом превратить его в исполняемый пакетный файл изменив расширение с TXT на BAT.
Чтобы воспользоваться этим способом необходимо включить отображение расширений. Для этого откройте папку, перейдите на вкладку « Вид » и нажмите на кнопку « Параметры ».
В результате откроется окно « Параметры папок ». Здесь нужно перейти на вкладку «Вид» и отключить функцию « Скрывать расширения для зарегистрированных типов файлов ».
После этого, при переименовании вы сможете изменять расширение. Изменив расширение файла с TXT на BAT вы получите исполняемый пакетный файл.
Это два основных способа создания BAT файлов, которые чаще всего используются в Windows 10.
Как создать bat файл в Windows
Урок bat-аники
Автор: Алексей Александров
Источник: RSDN Magazine #2-2005
Опубликовано: 11.07.2005
Исправлено: 10.12.2016
Версия текста: 1.0
Введение
Мы все любим писать серьезные вещи на серьезных языках. Шаблоны, C++, Reflection, Perl и многое другое – вот то, что мы любим, то, чему посвящаем длинные сообщения в форумах, то, что снится нам по ночам.
Однако в нашей повседневной деятельности встречаются и вещи, которые не так интересны и интеллектуальны. Мы не очень любим говорить об этом, делаем вид, что Это – грязно, нечистоплотно и недостойно нашего внимания. Однако, приходит день, приходит час и перст Судьбы находит нас – нам надо написать еще один батничек… Иногда это запускалка для построения проекта, которая должна при ошибке компиляции скопировать логи на сетевой диск, иногда – запуск обновления исходных текстов из SVN. Иногда – что-нибудь еще.
К чему я это все? А к тому, что поговорим мы о полезных хитростях при написании файлов сценариев на встроенном командном языке Windows. К счастью, это занятие не является доминирующим в профессиональной деятельности автора, так что я не обязуюсь заполнить абсолютно все пробелы в данной области. Кроме того, рожденный ползать летать не может, и из cmd.exe, увы, не получится ни /usr/bin/perl, ни даже /bin/sh. Так что, все нижеприведенное – просто некоторые интересные факты из жизни файлов с расширением bat, на которые автор обратил внимание во время решения различных практических задач автоматизации.
Наш урок будет построен по сугубо практическому принципу, известному в народе как Cookbook. Иными словами, я не буду вдаваться в синтаксические и семантические дебри командного языка Windows, а лишь продемонстрирую его возможности (хотел написать «мощь», но все-таки передумал). Именно поэтому большинство следующих заголовков будет начинаться со слова «Как». Впрочем, для полноты по ходу развития событий будут даваться подробные комментарии, в том числе и по языковым конструкциям.
ПРЕДУПРЕЖДЕНИЕ Практически все описанные здесь рецепты подойдут только для Windows 2000 и старше. Bat-язык Windows 9x, к счастью, можно считать почившим, так что здесь он не рассматривается. Более того, диалекты cmd.exe операционных систем Windows 2000, Windows XP и Windows Server 2003 также немного различаются. Все приведенное ниже создано и проверено на компьютере под управлением операционной системы Windows XP. За подробной информацией по различиям в реализации той или иной команды обращайтесь к [1]. Как экранировать символ?В командном языке Windows существует некоторый набор символов с высоким приоритетом, которые всегда трактуются как спецсимволы. К ним, в частности, относятся: В случае если символ, относящийся к одному из таких операторов, должен быть включен в вашу команду в его литеральном смысле, вас ждут определенные неожиданности. Например, при выполнении вот такой строки символ процента будет «съеден» интерпретатором, который решит, что это попытка вывода значения какой-то переменной. В случае со знаком процента решение довольно хорошо известно и состоит в удвоении этого символа: после чего все заработает так, как надо. Однако в других случаях все менее очевидно. Рассмотрим командный сценарий, который генерирует незатейливый HTML-файл: К сожалению, при попытке запуска этого «чуда инженерного разума» нас постигнет неудача в виде сообщения об ошибке Оно и понятно: командный интерпретатор не в силах разобраться, где его просят вывести на экран символ HTML-тега, а где перенаправить вывод. В нормальных языках программирования эта проблема обычно решается обрамлением строковых литералов кавычками. Отчасти это помогает и в bat-файлах. Но лишь отчасти. Выполнение строки приведет к тому, что в выходной файл будут записаны и сами кавычки. Это явно не совсем то, что требуется. К счастью, есть один малоизвестный способ, позволяющий добиться требуемого результата. Символ ^ позволяет экранировать любой другой символ с безусловным приоритетом. Таким образом, вышеприведенный пример генерации HTML может быть успешно записан так: Таким же способом можно экранировать любой другой специальный символ. Очевидно, можно экранировать и сам ^. Не очень эстетично, зато дешево и практично. Слово «надежно» я пропустил умышленно… Как перенести длинную строку?Совет по поводу экранирующего символа ^ имеет еще одно применение: перенос строк. Я (как и многие из вас, наверное) люблю, чтобы любой исходный текст, который я пишу, выглядел красиво – даже *.bat-файлы. Одним из обязательных условий красоты и удобочитаемости кода для меня является его ширина: все строки должны умещаться в 78 столбцов. Можно поспорить по поводу числа 78, но в одном я непреклонен – ограничение на ширину текста кода должно быть, иначе это не код, а макароны. Так вот долгое время *.bat-файлы портили мне жизнь тем, что иногда приходилось писать длинную строку – например, вызов какой-нибудь другой программы с кучей опций, и я не знал, что с этим делать. Происходило это нечасто, но всегда было неприятно. Но, к счастью, моя жизнь изменилась с тех пор, как я открыл для себя Супер-Символ ^: Помните лишь, что чудо-символ должен быть последним в строке – скажите «Нет!» концевым пробелам.
|