|
v7: Установка переменной окружения из WSH | ☑ | ||
---|---|---|---|---|
0
big
19.12.19
✎
08:16
|
Для работы с бэкапами понадобилось в процессе работы из-под прокси устанавливать параметры этой самой прокси.
В JScript сделал это вот так: WshShell = WScript.CreateObject('WScript.Shell') WshEnvir = WshShell.Environment("PROCESS"); WshEnvir('HTTP_PROXY') = 'http://user:pass@proxy:3128' WshEnvir('HTTPS_PROXY') = 'http://user:pass@proxy:3128' и далее уже WshShell.Run("%ComSpec% /c "+Command,1,true) А вот как это сделать из 7.7 не могу понять. Вот такой код не работает: WshShell=СоздатьОбъект("WScript.Shell"); WshEnvir = WshShell.Environment("PROCESS"); //WshEnvir("HTTP_PROXY") = "http://user:pass@proxy:3128"; //WshEnvir("HTTPS_PROXY") = "http://user:pass@proxy:3128" WshEnvir.HTTP_PROXY = "http://user:pass@proxy:3128"; WshEnvir.HTTPS_PROXY = "http://user:pass@proxy:3128"; Посоветуйте как можно сделать? |
|||
1
vicof
19.12.19
✎
08:18
|
что значит не работает?
|
|||
2
Смотрящий
19.12.19
✎
08:19
|
1
|
|||
3
big
19.12.19
✎
08:24
|
При таком варианте:
WshEnvir.HTTP_PROXY = "http://user:pass@proxy:3128"; WshEnvir.HTTPS_PROXY = "http://user:pass@proxy:3128"; "Поле агрегатного объекта не обнаружено" При таком варианте: WshEnvir("HTTP_PROXY") = "http://user:pass@proxy:3128"; WshEnvir("HTTPS_PROXY") = "http://user:pass@proxy:3128"; "Процедура не обнаружена" |
|||
4
vicof
19.12.19
✎
08:30
|
А в отладчике посмотреть, что WshEnvir из себя представляет?
|
|||
5
vicof
19.12.19
✎
08:34
|
Подозреваю, что массив
|
|||
6
vicof
19.12.19
✎
08:35
|
Пример:
Set WshShell = CreateObject("WScript.Shell") Set WshEnv = WshShell.Environment MsgBox WshEnv.Item("WINDIR") Другой пример: Set WshShell = CreateObject("WScript.Shell") WScript.Echo "ПЕРЕМЕННЫЕ System:" For Each Var In WshShell.Environment("System") WScript.Echo Var Next WScript.Echo vbCrLf & "ПЕРЕМЕННЫЕ User:" For Each Var In WshShell.Environment("User") WScript.Echo Var Next WScript.Echo vbCrLf & "ПЕРЕМЕННЫЕ Volatile:" For Each Var In WshShell.Environment("Volatile") WScript.Echo Var Next WScript.Echo vbCrLf & "ПЕРЕМЕННЫЕ Process:" For Each Var In WshShell.Environment("Process") WScript.Echo Var Next |
|||
7
trdm
19.12.19
✎
08:40
|
Используй
ScrCtrl = СоздатьОбъект("MSScriptControl.ScriptControl"); ScrCtrl.Language="JScript"; |
|||
8
ADirks
19.12.19
✎
08:47
|
(0) с коллекциями 1С не умеет.
как-то так надо Скрипт = СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.Language = "JScript"; стрКод = " |function SetEnv() |{ | WshShell = WScript.CreateObject('WScript.Shell'); | WshEnvir = WshShell.Environment("PROCESS"); | WshEnvir('HTTP_PROXY') = 'http://user:pass@proxy:3128'; | WshEnvir('HTTPS_PROXY') = 'http://user:pass@proxy:3128'; |} |"; Скрипт.AddCode(стрКод); Скрипт.Run("SetEnv"); |
|||
9
big
19.12.19
✎
08:49
|
(6) Эти примеры у меня есть ))
Только что его же посмотрел и обнаружил, что этот объект-коллекция только для чтения. Как с ним получается работать в JScript - вопрос ) (7) Кстати, пробовал и так, но видать опыта не хватает - не получилось на самом начальном этапе. ТекстСкрипта = " |function probe(){ | | var WshShell = WScript.CreateObject(""WScript.Shell""); | return 1234; |}"; scriptCtrl = СоздатьОбъект("MSScriptControl.ScriptControl"); scriptCtrl.Language="jscript"; scriptCtrl.AddCode(ТекстСкрипта); Сумма = scriptCtrl.Eval("probe()"); Ошибка: Ошибка выполнения Microsoft JScript: 'WScript' - определение отсутствует |
|||
10
Сияющий в темноте
19.12.19
✎
08:49
|
если запуск через командную строку,то лучше всего подходит bat файл,где все в одной коробке.
также,можно посмотреть на создание процесса через wmi,где переменные окружения задаются явно. и еще когда вы используете vbscript,то у обьекта вызывается метод по умолчанию,который 1с вызвать не может,в ней нужно все методы прописывать явно. |
|||
11
ADirks
19.12.19
✎
08:56
|
(9) WshShell = new ActiveXObject('WScript.Shell');
|
|||
12
big
19.12.19
✎
08:58
|
(11) УРА!! Это оно и есть!!! )))
|
|||
13
big
19.12.19
✎
08:59
|
(11) Спасибо!! ))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |