Добрый день,
Мне надо передавать параметры хоста во внешнюю для LS программу. Столкнулся со следующим поведением LS:
Например, в параметрах действия указываю следующие аргументы %N %C-Username% %C-Password%.
1. Если хоть один из них для хоста не определен, то он просто игнорируется и из последовательности передаваемых аргументов %1, %2, %3 исключается. Например, в настройках конкретного хоста %C-Username% не задан. В результате чего переданные атрибуты будут %1=%N и %2= %C-Password% . Как в этом случае внешней программе разобраться?
Все проверки выполняю простым bat файлом:
ECHO The list args are...
for %%I IN (%*) DO ECHO %%I
pause
2. Простой длинный "Комментарий" в начале ("long comment with space") интерпретируется как несколько аргументов разделенных пробелом. Соответственно, он забивает аж четыре переменные. И передать %C-Password% уже нет возможности при атрибутах вызова %N %C %C-Username% %C-Password%
Поясняю: Вот текущий список определенных атрибутов:
а ниже результат:
3. при удалении строчки длинного комментария и переносе его в самый низ (аргументы вызова %N %C %C-Username% %C-Password% )
получаю даже такое:
В общем продуктивно работать с параметрами "Действия"никак не получается.
Есть ли у вас желание и возможность немного переделать логику обработки и передачи аргументов в соответствии со следущими правилами:
1. Если параметр явно для хоста не определен, но этот параметр используется в строке аргументов вызова, то присвоить ему какое-то стандартное дефолтное значение (0, NONE или еще какое-то другое строковое значение).
2. Аргумент %C как-то формализовать. Например, выделять его начало и конец (.. комментарий.., //комментарий// или еще как нибудь) чтобы он не расползался по параметрам
3. В комментариях (свойства хоста) есть другие уже определенные атрибуты - Корпус, Этаж, Телефон и т.д. Хотелось бы иметь возможность назначения для них своих ключей и передаче их значений при вызове внешней программы.
4. И все тоже самое (п.3) для определяемых пользователем атрибутов. Например, мне хотелось бы добавить атрибут "тип устройства" и иметь возможность передавать его значение внешней программе через ключ.
-
Комментарии
Спасибо большое за подробное исследование. Запишем себе в планы, будем разбираться с этим функционалом.
С параметрами разобрались, в следующей версии разбиваться и пропадать уже не будут. Что касается п.3 и 4, то вы можете создавать свои ключи и использовать их прямо сейчас, это давно есть. Кнопка "Добавить" добавляет новый атрибут в список, который можно подставлять в параметры командной строки через (например, если имя добавленного атрибута будет newparam)