我想将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
有人有任何想法吗?
答案 0 :(得分:3)
ExecuteGlobal
行上的错误消息可能意味着:
ExecuteGlobal
声明。 Surest方式:像Include
Sub call myFunctionStr
的代码应该受到指责。如果你进行链接/多重包含这个VBScript错误处理的“功能”,那么找到罪魁祸首就很困难了。简单的方法:用cscript运行'library'文件。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。