Extensible Batch file Builder - Расширяемый сборщик командных файлов
Программа сборки командных файлов на платформе Windows7+ по скрипту (сценарию).
Для создания и поддержки текстовыго интерфейса пользователя TUI (Text User Interface).
Запуск
> Release\EBB.cmd Script[.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 -Пространство имён для примера.
-
EBB -Управляющие инструкции пространства имён EBB.
- 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
Первый минимальный.