Имя: Пароль:
1C
1C 7.7
v7: как в метод run vbscript-a передать аргументы
0 Adecvator
 
20.09.12
13:06
Запустить на выполнение скрипт из 1С:

   КоманднаяСтрока = "cmd.exe /c net view>S:\1c_sql.vbs";
   WshShell=CreateObject("WScript.Shell");
   WshShell.Run(КоманднаяСтрока, 0, 1);

Скрипт был написан до меня и выполняется из назначенной задачи: Имя файла скрипта Имя файла с аргументами. Вопрос: Как запустить скрипт с нужными мне аргументами?
1 Андрюха
 
20.09.12
13:10
C:\>ИмяСкрипта.wsh Аргумент1 Аргумент2
2 Adecvator
 
20.09.12
13:11
(1) а применительно к моему случаю, это как?
3 ADirks
 
20.09.12
13:20
ну и запихай их прям в командную строку, типа
КоманднаяСтрока = "cmd.exe /c net view>S:\1c_sql.vbs """+Арг1+"""";
4 Adecvator
 
20.09.12
13:23
(3) имел ввиду: КоманднаяСтрока = "cmd.exe /c net view>S:\1c_sql.vbs S:\_List\Report.txt";
5 ADirks
 
20.09.12
13:25
да
но не забывай про возможные пробелы в путях. Поэтому
S:\1c_sql.vbs "S:\_List\Report.txt"
6 ADirks
 
20.09.12
13:28
кстати, если скрипт небольшой, то лучше вообще вот так сделать (пример)

Скрипт = СоздатьОбъект("MSScriptControl.ScriptControl");
Скрипт.Language = "VBScript";
Стр = "function GetAttrib()
|Set fso = CreateObject(""Scripting.FileSystemObject"")
|Set f = fso.GetFile(""" + СокрЛП(ИмяФайла) + """)
|f.attributes = " + Код + "
|end function";
Скрипт.AddCode(стр);    
Код = Скрипт.Run("GetAttrib");

тогда не будет никаких ненужных окошек открываться.
7 Adecvator
 
20.09.12
13:31
(6) в переменную ИмяФайла передаем файл скрипта, а в Код файл с атрибутами, я правильно понял или надо весь код скрипта передавать и весь текст файла атрибутов?
8 ADirks
 
20.09.12
13:37
Не, это просто пример, как это вообще может выглядеть, просто взял первый попавшийся.
Тебе же надо вместо текста
function GetAttrib()
|Set fso = CreateObject(""Scripting.FileSystemObject"")
|Set f = fso.GetFile(""" + СокрЛП(ИмяФайла) + """)
|f.attributes = " + Код + "
|end function

подставить текст того скрипта, который ты хочешь выполнить.
MSScriptControl.ScriptControl - это такой COM-объект, который позволяет напрямую взаимодействовать со скриптовым движком, без cscript/wscript
9 Adecvator
 
20.09.12
13:54
(8) Понял, спасибо.