При обновлении ПО BNComplex часто приходится выверять параметры, производя сравнения старых с новыми, заменять пути на используемые и так далее.Дабы упростить данную проверку, решил ее автоматизировать в плане выявления в ini файлов путей к файлам и каталогам, которые никуда не ведут.
Скрипт сам находит все параметры, у которых в значении встречается 1 или больше знаков "\" Все такие значения рассматриваются как пути к файлам или каталогам. Далее для каждого найденного параметра производится его проверка - есть ли такой каталог, или файл. Ту часть параметру, которую скрипту не удалось интерпретировать как каталог он подсвечивает красным
В результате получается примерно такая картина: c:\bncomplex\BN Logger\LoggerService.ini [Common] Log
Name=C:\BNComplex\Logs\Logger.log Flags Dir=C:\BNComplex\CfgFlags [Log
ID 0] Log Path=C:\BNComplex\Logs\PosLogs\%y%m%d.log [Log ID 1] Log
Path=C:\BNComplex\Logs\ComLogs\%d.log [Log ID
2] Log Path=C:\BNComplex\Logs\TransGate\Tr%d.log
Скрипт может применяться для любых случаев.
Скрипт выполнен на VBS, не имеет настроек. В качестве параметров передаются два: 1. Путь к проверяемому файлу 2. Путь к файлу результату - куда записывается все, что нашел скрипт
Так же в каталоге пример запуска скрипта для всех файлов ini указанного каталога (с подкаталогами). см. "check BNComplex.cmd" (версия для win 2003 или старше - используется утилита forfiles.exe входящая в состав оных). Для использования замените путь к скрипту внутри cmd.
В данный момент скрипт не понимает подстановочные символы (%y %m %d и т.п.) используемые в именах файлов. И отмечает такие файлы как не существующие.
Данный скрипт стоит рассматривать как средство быстрого выявления несоответствий путей и каталогов, для последующего анализа уже "ручками" администраторами, при проведении обновления. Скрипт "не понимает" для чего нужен тот или иной параметр - является ли он путем каталогу или файлу.
Недостатки:- Не проверяются маски путей для log-файлов для BNComplex - путь Log Path=C:\BNComplex\Logs\PosLogs\%y%m%d.log будет отмечен как ошибочный... но так как программа вполне справляется с созданием файлов - то большой необходимости в этом нет...
- Не проверяется тип параметра (т.е. по названию параметра скрипт не может понять папка это должна быть или файл) - сначала ищется папка, потом файл. Если вместо файла создана папка, или наоборот - это ошибкой не считается.
|