Extensible Batch file Builder

Extensible Batch file Builder

Extensible Batch file Builder - Расширяемый сборщик командных файлов

Программа сборки командных файлов на платформе Windows7+ по скрипту (сценарию).
Для создания и поддержки текстовыго интерфейса пользователя TUI (Text User Interface).

Запуск

> Release\EBB.cmdScript[.ebb] [Result[.cmd]] [/EBB_Run] [/EBB_Debug]\

  • Script -Файл скрипта, по умолчанию расширение .ebb
  • Result -Создаваемый файл. Eсли не указано, то будет подставлено имя файла скрипта с расширением .cmd
  • /EBB_Run -Ключ для запуска командного файла по окончанию сборки
  • /EBB_Debug -Ключ для записи отладочной информации в файл "CommandFile.cmd.log"

Файл скрипта (сценария)

Представляет собой текст на языке командного процессора (cmd.exe) с использованием управляющих инструкций.
Управляющая инструкция оформляется как отдельная строка с двумя символами двоеточия вначале (командный процессор интерпретирует её как недопустимую метку) и названием пространства имён (инструкций) за которым через разделитель "<" перечислено название инструкции и её параметры если есть.
Пространство имён представляет собой папку, расположенную в каталоге с файлом EBB.cmd или в каталоге с файлом скрипта. Папка содержит командные файлы, названия которых используются в качестве названия управляющих инструкций.
Запуск файла EBB.cmd без параметров отобразит описание управляющих инструкций всех пространств имён. Запуск командного файла инструкции отобразит её описание.

Инструкции пространства имён EBB:

  • Abort -Прекращение сборки.
  • BlkAdd, BlkMid, BlkEnd -Группировка блоков кода (косметика) для Notepad++.
  • Build -Запуск сборки по указанному файлу скрипта.
  • BuildList -Оптимизация условной сборки множества скриптов.
  • CodePage -Настройка кодовой страницы файлов скрипта и/или создаваемого командного файла.
  • Command -Выполнение произвольных команд процессра (командного) на этапе сборки.
  • DateTimeGet -Получение текущей даты и времени в указанном формате.
  • FileBackup -Создание резервной копии файла.
  • GetLocale -Чтение из реестра названия языкового пакета и кодовой страницы по умолчанию.
  • IfNotAdmin -Проверка прав администратора у исполняемого файла.
  • IfStr -Условный вывод строки кода в создаваемый файл.
  • Include -Подстановка кода скрипта из файла. Содержимое файла будет подставлено взамен инструкции.
  • Macro -Подстановка кода макроса.
  • MacroAdd -Создание нового макроса.
  • MacroEnd -Завершение создания макроса.
  • MacroDef -Объявление значений по умолчанию для параметров макроса.
  • MenuAdd -Создание нового меню.
  • MenuItemAdd -Добавление нового пункта в меню.
  • MenuEnd -Завершение создания меню.
  • MenuCall -Вызов пункта меню.
  • MenuDialog -Вызов диалога меню. Отображает список пунктов и приглашение к вводу.
  • MenuItemList -Отображение списка пунктов меню.
  • MenuLabelGet -Поиск соответствия команды названию функции пункта меню.
  • MenuListCopy -Создание файла с атибутами всех пунктов меню.
  • NOP -Инструкция ничего не делает.
  • SetLocalEE -Включение режима расширенной обработки команд и отложенной обработки переменных среды.
  • Skip -Управление условной компиляцией.
  • StringCharCheck -Проверка строки на допустимый набор символов.
  • WatchStop -Расчёт интервала времени в децисекундах.

Особенности работы в Windows7:\

 -Имеется ограничение на использование "неродных" для командной строки кодировок.
 -Используется стороннее решение для поддержки управляющих последовательностей ANSI.

Структура папок проекта:

  • ansi189-bin -Проект https://github.com/adoxa/ansicon/releases для эмуляции управляющих последовательностей ANSI на платформе Windows7. Т.к. в консоли этой платформы отсутствует возможность использования управляющих кодовых последовательностей терминала ANSI.
  • Examples -Примеры скриптов. Файл "Build & Run.cmd" для автоматической сборки и запуска примеров.
  • Release -Программа сборки и файлы настроек.
    • EBB -Управляющие инструкции пространства имён EBB.
      • Locale -Файлы описания инструкций для разных локалей.
    • Locale -Файлы текстовых сообщений программы сборки для разных локалей.
    • Macros -Папка макросов.
    • NamespaceTest -Пространство имён для примера.
  • Setup -Регистрация контекстного меню в проводнике для файлов .ebb и настройка Notepad++.
  • Source -Исходники для сборки нового выпуска (Release самого себя :).

Комментарии

  • Для ускорения процесса сборки переопределить переменную TEMP (например в файле \Release\EBB.ini) на диск расположенный в оперативной памяти (см. проект http://www.ltr-data.se/opencode.html/#ImDisk).
  • Для создания в проводнике контекстного меню файлов .ebb, запустить "\Setup\EBB explorer.cmd". Будут добавлены пункты меню:
    • "Открыть"
    • "Сборка и запуск файла cmd"
    • "Сборка с отладкой и запуск файла cmd".
  • Для настройки редактора Notepad++ запустить файл "\Setup\EBB Notepad++.cmd".
    Будет добавлено выделение синтаксиса и панель "список функций".

Лицензия

ГОСУДАРСТВЕННАЯ ОТКРЫТАЯ ЛИЦЕНЗИЯ, ВЕРСИЯ 1.1 https://g.info.gov.ru/datamart/nsud-datamarts/-/blob/master/open_license_ru

История выпусков

2025-06-17 3.1\

  • Переработаны внутренности под рекурсивные вызовы.

2024-04-03 2.2
Добавлены управляющие инструкции:

  • IfStr -Условное добавление строки кода в результирующий файл.
  • MacroDef -Объявление значений по умолчанию для параметров макроса.

Добавлен ключ запуска для вывода описания управлящей инструкции по её названию:
>EBB.cmd /Инструкция

2024-03-29 2.1
Добавлена управляющая инструкция Skip.

2024-03-23 2.0
Добавлены управляющие инструкции:

  • BlkAdd, BlkMid, BlkEnd -"Косметика" для Notepad++
  • Buld -Сборка внешнего файла

Добавлены переменные для использования внутри инструкции MenuItemAdd:

  • EBB_NameAdd -Название меню
  • EBB_ItmCmd -Команда вызова пункта меню
  • EBB_ItmLabel -Метка функции пункта меню
  • EBB_ItmText -Текст описания пункта меню
  • EBB_ItmRet -Код возврата функции

2023-10-19 1.0
Первый минимальный.