Примеры программ для bat

Предостережение! Данная тема должна осваиваться пользователем(!) именно в том объеме, который приведен здесь (IMHO), то есть — в единицах процентов. Максимум — еще пару «уровней» вглубь, если возникнет такая потребность. Углубление знаний до уровня, близкого к полному, заведет в тупик. Подобные задачи следует решать с помощью языков программирования высокого уровня, что упростит решения и значительно увеличит скорость, но относится к сфере профессионального выполнения.

Речь идет о программировании, что не терпит единственного решения. Но в примерах, как правило, приводится именно одно. Это не означает, что нет более правильного, быстрого и логичного. Просто так требуется для конкретного описания. Советы и предложения приветствуются, но не неконструктивная критика.

За несколько лет наполнения страница разрослась очень сильно (почти 100 КБ), но пока разделяться не будет. Приношу свои извинения за неудобство работы с ней.

N.B.! ВСЕ примеры проходят тестирование и на 100% работоспособны, но я — не бог. Любые допущенные ошибки, например, при редактировании в процессе публикации на сайт, прошу озвучивать.

Топ 5 bat-файлов которые вам пригодятся

По-прежнему, как 10, 20, 30 и 40 лет назад, у пользователя сохраняется возможность индивидуально оптимизировать свою работу, переложив часть интеллектуального труда на плечи компьютера.

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

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

Эти файлы являются текстовыми, имеют расширение bat или cmd и содержат простейшие команды, понимаемые операционной системой, которые могут быть выполнены в командной строке.

Основные области применения:

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Для меня будет крайне радостно, если вы воспользуетесь хотя бы вариантами 2–4. От вариантов 7 и 8 вам, скорее всего, не уйти.

Какое из двух приведенных расширений использовать? Расширение bat использовалось для DOS (16-разрядный интерпретатор command.com), а cmd возникло для интерпретатора командной строки cmd.exe. Поэтому ряд действий может не производиться из bat-файла, либо исполняться медленнее, хотя большинство пользователей этого никогда не заметит. А bat-файлы рассматриваются Windows в качестве командных.

Некоторые символы в командных файлах нельзя использовать в строках, не заключенных в кавычки, так как они имеют специальное назначение. Например: ( ) ^ Press any key to continue. » и будет ожидать нажатия, чтобы вы все смогли прочитать.)

exit (закроет окно, иначе придется печатать эту команду руками, либо жать крестик, что для DOS-сессии категорически НЕДОПУСТИМО). Обратите внимание, что в бухгалтерском деле до сих пор используются DOS-приложения. Если вы их закроете крестиком, то почти неизбежна потеря информации или даже разрушение базы данных.

Бат файлы: основные команды, примеры

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

Возможно, что вам нравится, когда компьютер говорит сам с собой, а потом сообщает это же и вам. Мне — нет.

Если надо всё же что-то вывести на экран, используется команда echo , что присутствует во многих приводимых примерах.

Обработка аргументов

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

  • %0 — имя запущенного пакетного файла с путем.
  • %1 — первый переданный аргумент.
  • %2 — второй переданный аргумент.
  • %* — все переданные аргументы одной строкой.
Читайте также:
Как узнать есть ли вредоносные программы на компьютере

Комментарии

Для включения комментариев в текст вашей программы необходимо начать строку с :: (удвоенное двоеточие) или со слова rem.

При этом сами комментарии могут отражаться на экране, давая вам необходимые пояснения, либо не отображаться совсем (зависит от настройки echo).

Указание после команды знака амперсанда (корова» вместе с кавычками.

Использование ключа /P позволяет осуществить ввод пользователем.

SET /P variable=[строка_подсказки]

Ключ /A позволяет провести вычисления с использованием более двух десятков операторов.

Полная справка о работе команды может быть получена вызовом в командной строке

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Ветвление (If)

Оператор условного выполнения команд IF позволяет производить те или иные действия в зависимости от имеющихся обстоятельств. Последние могут существовать (то есть анализироваться командным файлом), либо задаваться действиями пользователя.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Метки

Поскольку язык достаточно примитивный и разрабатывался давно, он поддерживает так называемые безусловные переходы (переход к метке) для упрощения решений линейного программирования. Ряд ситуаций за счет этого решается на порядок быстрее и проще, чем в современных языках. Не надо следовать за безголовыми критиками данного подхода, это — данность, которой надо пользоваться, не перенося её в другие языки.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

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

Цикл For

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

Полная справка о работе команды может быть получена вызовом в командной строке

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

  • Обработка массива переменных памяти.
  • Обработка совокупности файлов в папке и/или подпапках.
  • Обработка файла, как совокупности строк.
  • Формирование числовой последовательности (близко к стандартному программному использованию).

Процитируем Справку: «В пакетных файлах для команды FOR используется запись %%переменная вместо %переменная%. Имена переменных учитывают регистр букв (%i отличается от %I).»

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

Имена файлов и путь

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

«C:Documents and Settings»

Обработка списка файлов

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

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

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

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

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Результатом работы всего перечисленного так или иначе становится выделение единичного имени файла в виде строки (%%i) при каждой итерации цикла. Совершенно несложно представить себе интеллектуальную задачу, когда требуется проанализировать это имя для принятия решения о последующем действии. Для этого потребуется обработка полученной строки.

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

Читайте также:
Программа appmgr как пользоваться

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Существует ли папка? Актуально для сетевых (надо подключиться) и локальных (надо создать) ресурсов. Сущностно полностью соответствует предыдущему случаю.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

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

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Считывание строк текстового файла лежит в основе работы множества профессиональных программ в разных областях знания. Без критики такого подхода заметим лишь, что это же можно сделать и в командных файлах.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям! Всё это, кстати, можно описать в переменных и не править 100 раз каждое место в коде. Но это не повлияет на буквенное обозначение, так что рано радоваться)))

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

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

:: . SetLocal EnableDelayedExpansion set ext=».jpg» set pref=»file_» set counter=1001 for /f «usebackq» %%f in (`dir /b /o:-d /tc *%ext%`) ^ do (ren «%%f» !pref!!counter:~1!.%ext% 22.02.2022″ (ДД.ММ.ГГГГ).

Доступ к размещенным в этом месте материалам ограничен и предоставляется следующим категориям:
1. Студент I/II курса ВХК РАН.

  • пустой пробел в начале, если не достигнуто двузначное значение часа;
  • «лишние» знаки отделения элементов времени;
  • долю текущей секунды с точностью в два знака.

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

Доступ к размещенным в этом месте материалам ограничен и предоставляется следующим категориям:
1. Студент I/II курса ВХК РАН.

Замена частей строк пока не выглядит актуальной для студенческих задач. Ищем сами, спрашиваем.

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

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

Массивы в командных файлах

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

Если значения элементов массива не задано, то оно будет равно 0. Для большинства ситуаций разумнее значение присвоить.

Подпрограммы

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

Доступ к размещенным в этом месте материалам ограничен и предоставляется следующим категориям:
1. Студент I/II курса ВХК РАН.

Дополнительный функционал

Сюда будет уходить всякая «экзотика», которая может пригодиться для реализации мелких идей. Это — почти готовые решения и в зачет заданий в чистом виде (без внедрения) они не пойдут.

P.S.! Большинство идей приходят из студенческих работ.

Доступ к размещенным в этом месте материалам ограничен и предоставляется следующим категориям:
1. Студент I/II курса ВХК РАН.

Задание для разработки

Доступ к размещенным в этом месте материалам ограничен и предоставляется следующим категориям:
1. Студент I/II курса ВХК РАН.

Некоторые полезные ссылки

К сожалению, часть ссылок на очень качественный материал отсюда убрана, так как ресурсы исчезли. Делайте выводы.

  1. CMD/BAT — Форум программистов и сисадминов
  2. Описание основных возможностей сценариев командной строки
  3. Командная строка. Сайт посвящен именно этой теме. Не для рядовых пользователей, но есть много полезных советов.
  4. Командные файлы Windows. Страница значительно расширяет материал и содержит важную информацию.
  5. Работа с массивами в bat.
  6. Массивы (Array) в языке Batch. Примитивно, но очень неплохо для начинающих.
  7. Примеры работы со строками в bat/cmd файлах.
  8. Цикл cmd for – обработка текста.
  9. Алексей Александров Урок bat-аники. Много важных «тонкостей» с аккуратным оформлением и грамотным изложением.
Читайте также:
Основные характеристики компьютерных программ

Источник: it-mda.ru

Решаем практические задачи на батниках

Батники это не мощный язык программирования, но, в то же время, на нем можно решить много рутинных задач. Цель статьи не просто рассказать о возможностях Windows-консоли, а показать их, решая практические задачи с которыми мне приходилось сталкиваться.

Подтверждение выполнения

set answer= set /p answer=»Выполнить? [y/n]:» if not «%answer%» == «y» exit /b

Устанавливаем переменную answer в пустое значение (необходимо, для того чтобы затереть предыдущее значение, например, если батник исполняется несколько раз). set с ключом /p устанавливает значение переменной, которое вводится пользователем. Проверяем значение переменной и если оно не равно y завершаем выполнение батника.

Как получить текущий месяц, день, год и т.п.?

В батниках есть возможность получать подстроку используя синтаксис %variable:~m,n% Где variable это название переменной m – индекс первого символа, а n – количество символов подстроки.

Следовательно, если команда echo %date% (а формат даты может у вас отличатся) выведет 13.06.2009, то для того чтобы получить текущий месяц достаточно выполнить %date:~3,2% Таким образом, если нам необходимо, например, сформировать имя файла или директории, которое соответствует текущему месяцу и дню, мы это сделаем так:

set fname=%date:~3,2%%date:~0,2%

Лично мне такое понадобилось для задания ключа /d для xcopy.

Как вывести пустую строку в лог-файл?

Я не сразу догадался, что это можно делать вот так: 🙂

echo.>> %logfile%

Т.е. нужно поставить точку после echo.

Предыдущая команда выполнена успешно?

В большинстве случаев это:

if %errorlevel%==0 ( echo OK>> %logfile% ) else ( echo ERROR #%errorlevel% >> %logfile% )

Архивирование файла с переменным именем

for %%i in (c:dir#fe*.*) do rar a -ep c:other_dir%%~ni.rar %%i

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

for %%i in (c:dir#fe*.*) do

Некоторые интересные примеры исполняемых bat-файлов

bat-file-icon

Здравствуйте, уважаемые читатели блога MyFirstComp.ru. В сегодняшней статье я решил сделать небольшую подборку готовых bat-файлов, которые, на мой взгляд, довольно интересные, и могут пригодиться как новичкам, так и опытным пользователям. Напомню, чтобы создать bat-файл, необходимо открыть Блокнот, и скопировать туда содержимое, которое будет приведено ниже. После этого нажимаем Файл/Сохранить как, и присваиваем файлу расширение bat, например так: program.bat.

сохраняем как bat

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

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

1. Получаем серийные номера всех съемных устройств и физических жестких дисков, а также имена разделов физических накопителей.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

2. Определяем версию, разрядность и сборку операционной системы.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

3. Удаляем ярлыки с рабочего стола.

1 2 3 4 5 6 7 8 9 10 11

Источник: myfirstcomp.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru