Сохранение VBScript организованным - PullRequest
2 голосов
/ 17 апреля 2009

Я поддерживаю достаточное количество скриптов vbscripts для выполнения различных сценариев запуска в своей сети и имею несколько функций, которые я использую почти во всех из них.

Если не считать копирования и вставки, есть ли у кого-нибудь предложения о том, как я могу создать библиотеки повторно используемого кода VBScript. Я не против использовать генератор кода для этого, если это не большая головная боль, чем копирование и вставка. Но любые рекомендации будут оценены.

Спасибо

Ответы [ 2 ]

6 голосов
/ 17 апреля 2009

VBScript имеет оператор Execute, поэтому, если вы не хотите идти по пути WSF, предложенному Tester101, вы можете сделать следующее:

Set fso = CreateObject("Scripting.FileSystemObject")
file = "your_library.vbs"

Execute fso.OpenTextFile(file, 1).ReadAll

Set foo = New FooClass
MsgBox foo.GetBar()

Предполагая, что "your_library.vbs" будет содержать определение класса для FooClass.

Обязательно вызовите Execute в глобальном контексте, иначе у вас возникнут проблемы с областями видимости.

Конечно, убедитесь, что все ваши файлы находятся под жестким контролем, чтобы предотвратить злонамеренное использование.

3 голосов
/ 23 мая 2009

Я использую синтетический include (как показано ниже) и храню свои библиотеки в подкаталоге.

Sub Include( scriptName )
    Dim sScript
    Dim oStream
    With CreateObject( "Scripting.FileSystemobject" )
    Set oStream = .OpenTextFile( scriptName )
    End With
    sScript = oStream.ReadAll()
    oStream.Close
    ExecuteGlobal sScript
End Sub

Очевидно, что если во включенном скрипте есть ошибка, вы не получите очень полезное сообщение об ошибке (VBScript не сможет сказать вам, на какой линии возникла проблема.) Как только все заработает, однако. ..

Include "c:\script\stdlib.vbs"
Include "c:\script\INI.cls"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...