Character encoding 为什么VBScript会说;无效字符“;使用ExecuteGlobal导入.vbs函数库文件时?
我在VBscript中遇到“无效字符”错误!特别是,在这段代码中:Character encoding 为什么VBScript会说;无效字符“;使用ExecuteGlobal导入.vbs函数库文件时?,character-encoding,vbscript,import,importerror,invalid-characters,Character Encoding,Vbscript,Import,Importerror,Invalid Characters,我在VBscript中遇到“无效字符”错误!特别是,在这段代码中: '******************************************************************* 'Import Code 'by Cheyne Wallace 'November 2008 'When using only VBscript (not QTP), this code will import any function library passed into it. 'Co
'*******************************************************************
'Import Code
'by Cheyne Wallace
'November 2008
'When using only VBscript (not QTP), this code will import any function library passed into it.
'Copy this function into a file, then use it to bring in various other function libraries.
'Usage:
' Import "Library.vbs"
Sub Import(strFile)
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim wss : Set wss = CreateObject("WScript.Shell")
strFile = wss.ExpandEnvironmentStrings(strFile)
strFile = objFSO.GetAbsolutePathName(strFile)
Set objFile = objFSO.OpenTextFile(strFile, 1)
ExecuteGlobal objFile.ReadAll
objFile.Close : Set objFSO = nothing
Set wss = Nothing
End Sub
错误在第206行的字符2上声明“Microsoft VBScript编译错误。无效字符。代码:800A0408
”,这是ExecuteGlobal objFile.ReadAll
(字符1是一个选项卡)
我已经键入并重新键入了该行,以及周围的换行符。不过,它一直在说“无效字符”。发生了什么事?事实证明,问题不在于
ExecuteGlobal
,而在于我试图导入的.vbs文件。我导入的文件不是ANSI编码。如果VBScript对您导入的文件有问题,它将在ExecuteGlobal
开头的字符和行报告错误(这无疑会导致混淆)
打开您试图导入的文件,将其转换为ANSI,所有操作都应正常进行。FYI对于将来出现相同问题的用户,要解决此问题,请执行以下操作:
从以下位置更改代码:
Set objFile = objFSO.OpenTextFile(strFile, 1)
ExecuteGlobal objFile.ReadAll
到
OpenTextFile
函数中的最后一个参数是TristateUseDefault=-2
(使用系统默认值打开文件)
Set objFile = objFSO.OpenTextFile(strFile, 1, False, -2)
ExecuteGlobal objFile.ReadAll