![]() |
Экранизация кавычек в передаваемом аргументе в скрипт
Здравствуйте! Вот такой вот скрипт, призван вызывать из контекстного меню оснастки AD "пользователи и компьютеры" программу для удаленного подключение к компьютеру пользователя, но в передаваемом аргументе есть кавычки, которые в AD экранируются с помощью символа \". А в vbs, это вызывает проблемы (
Подскажите как в этой ситуации выкрутится. Код:
On Error Resume Next |
Цитата:
|
Цитата:
в результате, получается уже не два переданных аргумента, а 3: LDAP://DC.office.zmzgroup.ru/CN=Иванов Иван Иванович,OU=ООО \Наша Контора\,OU=Пользователи,DC=office,DC=zmzgroup,DC=ru user При этом пропадает символ ". Если между \" и \" еще больше пробелов, то количество аргументов становится еще больше. получается, нужно сделать переменную, в которую циклом будут записываться все аргументы пока не встретится аргумент user. и потом, еще нужно вставить символ " после \, и передать все это в GetObject. Но как это все реализовать, я не знаю( |
yanus74, покажите, как именно у Вас вызов скрипта организован, как привязка:
Цитата:
|
вот эта конструкция решает проблему с пробелами:
Код:
Set objArgs = WScript.Arguments Цитата:
|
С моей колокольни, самым правильным будет заменить в свойствах объекта AD прямые кавычки на типографские («ёлочки») или апострофы:
Код:
ООО «Наша Контора» Цитата:
|
Цитата:
А по скрипту, я так понял, нужно сделать функцию, которая посчитает количество \ ( гугление показало, что такой функции в VBS нету ), потом сделать цикл, который разложит строку, и после каждого встреченного символа \ добавит Chr(34). И потом уже вызвать функцию GetObject в которую передать переменную. Из простого скрипта целая программа выходит) |
Цитата:
Цитата:
Код:
WScript.Echo UBound(Split("12345\67890\qwerty\uiop\asdf", "\")) |
Время: 19:02. |
Время: 19:02.
© OSzone.net 2001-