【问题标题】:Keeping VBScript Organized保持 VBScript 井井有条
【发布时间】:2009-04-17 17:45:08
【问题描述】:

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

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

谢谢

【问题讨论】:

标签: vbscript code-reuse organization


【解决方案1】:

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,否则您会遇到范围界定问题。

当然,请务必严格控制您的所有文件,以防止恶意使用。

【讨论】:

  • 所以“your_library.vbs”必须包含一个类定义,而不仅仅是一个例程的集合?
  • @Tester101:事实上你可以在文件中放任何东西。该类只是一个示例,函数和子类的工作方式相同。
  • 我喜欢这种方法,因为它不会强迫您使用 WSH。然而,在我的情况下,我仍然很清楚。
【解决方案2】:

我使用合成的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"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 2015-01-20
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多