Почему VBScript говорит "недопустимый символ" при использовании ExecuteGlobal для импорта файла библиотеки функций.vbs?
Я сталкиваюсь с ошибкой "недопустимый символ" в моем VBscript! В частности, в этом блоке кода:
'*******************************************************************
'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
Ошибка гласит "Microsoft VBScript compilation error. Invalid Character. Code: 800A0408
" на Char: 2, строка 206, которая является самой первой буквой на ExecuteGlobal objFile.ReadAll
(символ 1-это вкладка).
Я набрал и перепечатал строку, а также окружающие разрывы строк. Тем не менее, он продолжает говорить "недопустимый характер". Что происходит??
2 ответа:
Как оказалось, проблема была не с
ExecuteGlobal
, а с самим .vbs-файл, который я пытался импортировать. Файл, который я импортировал, не был в кодировке ANSI. Если у VBScript есть проблема с импортируемым файлом, он сообщит об ошибке в символе и строке в началеExecuteGlobal
(что, по общему признанию, вызывает путаницу).Откройте файл, который вы пытаетесь импортировать, конвертируйте его в ANSI, и все должно работать.