我维护了很多用于在我的网络上执行各种启动脚本的vbscripts,并且我在几乎所有这些脚本中都使用了一些函数。
没有复制和粘贴,是否有人建议我如何创建可重用的vbscript代码库。我并不反对使用代码生成器这样做,只要它不像复制和粘贴那样令人头疼。但任何建议都会受到赞赏。
由于
答案 0 :(得分: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,否则您将遇到范围问题。
当然,请确保严密控制所有文件,以防止恶意使用。
答案 1 :(得分: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"