我维护了大量用于在我的网络上执行各种启动脚本的 vbscripts,并且我几乎在所有这些脚本中都使用了一些函数。
没有复制和粘贴,有人对我如何创建可重用的 vbscript 代码库有建议吗?我不反对使用代码生成器来这样做,只要它不比复制和粘贴更令人头疼。但任何建议将不胜感激。
谢谢
我维护了大量用于在我的网络上执行各种启动脚本的 vbscripts,并且我几乎在所有这些脚本中都使用了一些函数。
没有复制和粘贴,有人对我如何创建可重用的 vbscript 代码库有建议吗?我不反对使用代码生成器来这样做,只要它不比复制和粘贴更令人头疼。但任何建议将不胜感激。
谢谢
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,否则您将陷入范围界定问题。
当然,一定要严格控制所有文件,以防止恶意使用。
我使用合成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"