2

我维护了大量用于在我的网络上执行各种启动脚本的 vbscripts,并且我几乎在所有这些脚本中都使用了一些函数。

没有复制和粘贴,有人对我如何创建可重用的 vbscript 代码库有建议吗?我不反对使用代码生成器来这样做,只要它不比复制和粘贴更令人头疼。但任何建议将不胜感激。

谢谢

4

2 回答 2

6

VBScript 有Execute声明,所以如果你不想走 Tester101 建议的 WSF 路线,你可以像这样做一个包含:

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,否则您将陷入范围界定问题。

当然,一定要严格控制所有文件,以防止恶意使用。

于 2009-04-17T18:37:39.540 回答
3

我使用合成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"
于 2009-05-23T14:32:37.260 回答