3

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はタブです)。

線とその周囲の改行を入力して再入力しました。それでも、「無効な文字」と言い続けます。何が起こっている??

4

3 に答える 3

5

結局のところ、問題はExecuteGlobal。ではなく、インポートしようとした.vbsファイルにありました。インポートしたファイルはANSIエンコーディングではありませんでした。インポートするファイルにVBScriptで問題がある場合は、先頭の文字と行でエラーが報告されます(これは明らかにExecuteGlobal混乱を引き起こします)。

インポートしようとしているファイルを開き、ANSIに変換すると、すべてが機能するはずです。

于 2012-12-21T19:56:36.500 に答える
0

コードを次のように変更します。

Set objFile = objFSO.OpenTextFile(strFile, 1)
ExecuteGlobal objFile.ReadAll

Set objFile = objFSO.OpenTextFile(strFile, 1, False, -2)
ExecuteGlobal objFile.ReadAll

OpenTextFile関数の最後のパラメーターはTristateUseDefault = -2(システムの既定値を使用してファイルを開きます) です。

于 2019-11-20T16:49:53.507 に答える