VBS, как добавить код в текущий код? - PullRequest
0 голосов
/ 08 ноября 2011

Я хочу выполнить код в скрипте, зная путь к тому коду, который я хочу выполнить (это файл .vbs).Я не знаю, стоит ли мне использовать Eval или есть другой способ?

Ответы [ 2 ]

1 голос
/ 08 ноября 2011

Если ваш второй файл .vbs представляет собой полный сценарий, который должен выполняться вашим первым файлом .vbs «как из командной строки», то используйте .Run (или .Exec), как советовал Марко.

Если вашsecond .vbs - это модуль, содержащий функции / подпрограммы / классы, некоторые из которых вы хотите использовать в своих первых .vbs, выполните Execute [Global] для .ReadAll () второго файла.

Если выможете / хотите перекодировать ваш первый файл как .wsf, вы можете использовать тег script с атрибутом src для «импорта» вашего модуля.Минималистическая демонстрация:

Модуль:

'' mod.vbs
Function SampleFunc()
  SampleFunc = "mod::SampleFunc()"
End Function

Основной файл:

<job>
 <script language="VBScript" src="mod.vbs" />
 <script language="VBScript">
  WScript.Echo WScript.ScriptName
  WScript.Echo SampleFunc()
 </script>
</job>

Вывод:

cscript main.wsf
main.wsf
mod::SampleFunc()

Еще одна стратегия - поставитькод модуля в файле .wsc;это дает вам COM-компонент, который вы можете зарегистрировать и использовать через CreateObject () или просто загрузить через GetObject ("script:<filespec>").

0 голосов
/ 08 ноября 2011

Попробуйте использовать:

Set WSHShell = CreateObject("WScript.Shell") 
WSHShell.Run "wscript " & strFileName, , True 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...