ExecuteGlobal预期语句错误VBscript

时间:2013-03-14 11:30:48

标签: vbscript include

我想将VBscript包含到另一个VBscript中(有点模拟VBS中的OO),在网上找到了一些东西,对我来说似乎没关系。我一直在ExecuteGlobal行上得到“预期声明” - 错误:

Dim scriptLocation

Sub Main
    scriptLocation ="script2.vbs"
    Include(scriptLocation)
End Sub

Sub Include (strFile)
    Dim fsObj : Set fsObj = CreateObject("Scripting.FileSystemObject")
    Dim vbsFile : Set vbsFile = fsObj.OpenTextFile(strFile, 1, False)
    Dim myFunctionsStr : myFunctionsStr = vbsFile.ReadAll
    vbsFile.Close
    Set vbsFile = Nothing
    Set fsObj = Nothing
    ExecuteGlobal myFunctionsStr
End Sub

有人有任何想法吗?

3 个答案:

答案 0 :(得分:3)

ExecuteGlobal行上的错误消息可能意味着:

  1. 你成功搞砸了ExecuteGlobal声明。 Surest方式:像Include Sub call
  2. 一样添加param list()
  3. 您加载到myFunctionStr的代码应该受到指责。如果你进行链接/多重包含这个VBScript错误处理的“功能”,那么找到罪魁祸首就很困难了。简单的方法:用cscript运行'library'文件。
  4. BTW:OOP与包含代码(库/模块)之间没有必要的关系。

答案 1 :(得分:1)

内置子ExecuteGlobal没有任何问题。试试这个:

ExecuteGlobal "*"

这将导致预期声明错误。但正如你所看到的那样,问题在于字符串。因此,只需调试 script2.vbs

答案 2 :(得分:0)

尝试在HexEditor中打开script2.vbs。如果您的脚本以UTF-8编码,则文件在开头包含0x {ef bb bf}。方法.ReadAll只读取从文件到myFunctionStr的所有内容,包括3个字节。从字符串中删除该字节或将script2.vbs转换为ANSI。