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

Vbscript 阅读文本文件给了我奇怪的字符串链。无法通过在文本文件中创建行的字符串变量获取,vbscript,Vbscript,我试图在VBS中制作一个小脚本,将命令输出保存到文本文件中,然后逐行从中读取,并将其放置到变量中 不幸的是,效果很奇怪。我没有使用包含文件中所有行的字符串,而是使用类似“ybN”的奇怪链(参见下面的屏幕截图)。我试着用在互联网上找到的许多不同的方法读取文件,但效果更糟或是相同 我注意到命令输出在每个文本后都有很多空格,但我不知道这是否是导致问题的原因 有什么建议吗 Const ForWriting = 2 Const ForReading = 1 Set WshShell = CreateOb

我试图在VBS中制作一个小脚本,将命令输出保存到文本文件中,然后逐行从中读取,并将其放置到变量中

不幸的是,效果很奇怪。我没有使用包含文件中所有行的字符串,而是使用类似“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")
写入常数=2
常数ForReading=1
设置WshShell=CreateObject(“WScript.Shell”)
如果WScript.Arguments.Length=0,则
设置ObjShell=CreateObject(“Shell.Application”)
ObjShell.ShellExecute“wscript.exe”_
,“”,&WScript.ScriptFullName&“RunAsAdministrator”,“runas”,1
WScript.Quit
如果结束
设置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))
Echo“接口数据推送到”&strFile处的文本文件
如果存在fsoObject.files(strFile),则
如果fsoObject.GetFile(strFile).Size为0,则
设置objFile=fsoObject.OpenTextFile(strFile,用于写入)
objFile.Write“”
objFile.Close
如果结束
如果结束
设置objFile=fsoObject.OpenTextFile(strFile,ForReading)
直到objFile.AtEndOfStream
strMsg=strMsg&objFile.ReadLine&vbNewLine
'strMsg=strMsg&strLine&vbNewLine
环
objFile.Close
sInput=InputBox(“选择要配置的网络连接”和vbNewLine&strMsg,“选择一个选项”)
屏幕截图:


您的文件是Unicode编码的(准确地说是小端UTF-16)<代码>ÿþ是此编码的(BOM)。您需要通过将的第四个参数设置为
-1
,将其打开:

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