阅读文本文件给了我奇怪的字符串链。无法通过在文本文件中创建一个字符串变量

时间:2017-03-21 16:33:11

标签: vbscript

我正在尝试在VBS中创建一个小脚本,将命令输出保存到文本文件,然后逐行读取并将其放置到变量。

不幸的影响很奇怪。而不是一个包含文件中所有行的字符串,我有像#34; ybN" (见下面的截图)。我试图通过互联网上的许多不同方式阅读文件,但效果更差或相同。

我注意到命令输出在每个文本后保存了很多空格,但我不知道是否是造成问题的原因。

有什么建议吗?

Const ForWriting = 2
Const ForReading = 1

Set WshShell = CreateObject("WScript.Shell")
If WScript.Arguments.Length = 0 Then
    Set ObjShell = CreateObject("Shell.Application")
    ObjShell.ShellExecute "wscript.exe" _
        , """" & WScript.ScriptFullName & """ RunAsAdministrator", , "runas", 1
    WScript.Quit
End If

Set fsoObject = CreateObject("Scripting.FileSystemObject")
strFile = "D:\interfaces.txt"

WshShell.Run("%comspec% /C wmic nic where " & Chr(34) & "netconnectionid like '%'" & Chr(34) & " get netconnectionid >> " & Chr(34) & strFile & Chr(34))
WScript.Echo "Interface data pushed to text file at " & strFile

If fsoObject.FileExists(strFile) Then
    If fsoObject.GetFile(strFile).Size <> 0 Then
        Set objFile = fsoObject.OpenTextFile(strFile, ForWriting)    
        objFile.Write ""
        objFile.Close  
    End If
End If

Set objFile = fsoObject.OpenTextFile(strFile, ForReading)

Do Until objFile.AtEndOfStream
    strMsg = strMsg & objFile.ReadLine & vbNewLine
    'strMsg = strMsg & strLine & vbNewLine
Loop
objFile.Close

sInput = InputBox("Choose network connection to configurate " & vbNewLine & strMsg, ,"Choose one option")

截图:

weird chain Saved text file

1 个答案:

答案 0 :(得分:0)

您的文件是Unicode编码的(准确地说是小端UTF-16)。 ÿþ是此编码的byte order mark(BOM)。您需要通过将OpenTextFile()的第四个参数设置为-1来打开它:

Set objFile = fsoObject.OpenTextFile(strFile, ForReading, False, -1)