1 (изменено: Rumata, 2013-09-04 15:14:23)

Тема: CMD/BAT: Создание и использование библиотеки скриптов

Однажды я описал витиеватый способ организации библиотеки скриптов CMD/BAT: Librarian — библиотекарь скриптов. Кстати сказать, не только меня псещали подобные мысли. В интернете можно найти схожие реализации.

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

Недавно мне на глаза попалась еще одна реализация: ... how to include batch files. Идея еще проще. На сайте также имеется коллекция скриптов http://www.dostips.com/.

Простой пример с "библиотекой" для работы со строками.


:: string.bat

@echo off

call %*
goto :EOF


:len
setlocal

set /p "p=%~1" <nul >"%TEMP%\$$$"

call :len_file "%TEMP%\$$$"

endlocal && set "RETVAL=%RETVAL%"
goto :EOF


:len_file
set "RETVAL=%~z1"
goto :EOF

@echo off

call string len "%~1"
echo %RETVAL%

goto :EOF
( 2 * b ) || ! ( 2 * b )

2 (изменено: UNDYING, 2013-09-04 22:25:03)

Re: CMD/BAT: Создание и использование библиотеки скриптов

Rumata пишет:

Однажды я описал витиеватый способ организации библиотеки скриптов ... Librarian ...

Да идея была интересная.

Кстати сказать, не только меня псещали подобные мысли. В интернете можно найти схожие реализации.

В принципе, я думаю, что такая идея посещала любого человека, регулярно занимающегося автоматизацией рутинных процессов.
Минусы всех виденных (в т.ч. и приведённой вами в записи) они предназначены для использования одним человеком (скорее всего его создателем).
Если говорить конкретно:
1. В любой из виденных мною "систем организации папки с батниками" нет контроля целостности - невозможно легко и просто взять и посмотреть: какие возможности предоставляет тот или иной "библиотекарь"?
2. Никогда не встречались способы обновления библиотеки/библиотекаря (Librarian поддерживает только довольно лёгкий импорт собственных наработок). Не наблюдал хранилищ с библиотеками (а-ля репозиториев).
3. Повсеместно отсуствуют средства развёртывания и управления конфигурациями. Ну хотя бы ADM-файлик для GPO - не было такого. Варианты дистрибуции "библиотекаря" в виде msi-файла - что то из разряда фантастики.

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

Представьте, что у вас 20 или более серверов/ПК, о какой централизации может быть речь? Админу localhost без разницы как хранить скрипты.

У меня была идея организации пакетного менеджера (скачка/проверка КС/база установленных пактов: какой, когда и откуда) по примеру pacman из ArchLinux. Пакеты в cab-файлах (для простоты). Идея заглохла из-за банального недостатка времени и сил на разработку/поддержку, ибо в одиночку оно того не стоит.

+ открыть спойлер

Отсутствие репозиториев для PowerShell, кстати, тоже не способствует шибко большой популярности сего инструмента. Если бы не крупная компания по популяризации продукта и отсутствие вменяемого конкурента - я боюсь, мы бы не узнали о нём.

Вообще, ваша идея может быть доработана до "адекватного состояния" (т.е. до состояния когда продуктом удобно пользоваться):
- описать требования к "библиотекарю"
- описать требования и общие принципы к самим скриптам в библиотеке (напр. поддерживаемые ОС XP x32/64 и выше, кому необходимо NT4 - создавайте свой репо и вперёд)
- после этого взять площадку на code.google.com и пилить проект.

Все дополнения/патчи на почту/форум.
Тут нужно понять, что сама по себе "система организации папки с батниками" "никому не упёрлась", главное - само содержимое библиотеки - скрипты, документация, примеры.
Немного пиара (пара постов на какой-нибудь айтишный ресурс типа хабра) и проект сам пойдёт, т.е. будет развиваться усилими самих пользователей.

3

Re: CMD/BAT: Создание и использование библиотеки скриптов

скока буков то

Я конечно далек от мысли... (с)