为什么我的VBScript抛出九个弹出窗口而不是一个?

问题描述 投票:1回答:1

我有一台Win7 64位Windows专业笔记本电脑。我有一个VB脚本,它是从网上获取的,并进行了某些更改,以使笔记本电脑上的所有适配器的链接速度都达到最高。 Vb脚本似乎正在工作,除了我必须输入9次才能获得所有实例的完整列表。这意味着当我双击脚本时,弹出窗口仅显示一个实例。当我再次按Enter时,它会显示第一个和第二个,同样,直到我按Enter九次,我才在一个弹出窗口中获得完整列表。我知道可以在使用CScript的命令提示符下执行此操作,但我更喜欢使用单个Popup。我在VBScripts上不是很灵活,但是我愿意学习。我想念什么吗?任何帮助将不胜感激。这是我的脚本。

strComputer = "."
strRslt = Wscript.ScriptName _
    & vbTab & "Computer Information " & vbcr _ 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\WMI")
Set colItems = objWMIService.ExecQuery("SELECT * FROM MSNdis_LinkSpeed" ,,48)  
For Each objItem in colItems
strRslt = strRslt & vbNewLine  _
& "InstanceName: " & vbTab & objItem.InstanceName & vbcr _
& "NdisLinkSpeed: " & vbTab & objItem.NdisLinkSpeed/10 & " kbps" 
msgbox strRslt,&h51000, "speed"
Next
vbscript wsh
1个回答
0
投票

因为变量strRslt将数据信息填充到..下一个循环中

因此,在这种情况下,您应该在MsgBox之后而不是在循环中写入Next

strComputer = "."
strRslt = Wscript.ScriptName & vbTab & "Computer Information"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\WMI")
Set colItems = objWMIService.ExecQuery("SELECT * FROM MSNdis_LinkSpeed" ,,48)  
For Each objItem in colItems
    strRslt = strRslt & vbNewLine & _
    "InstanceName: " & vbTab & objItem.InstanceName & vbcrlf & _
    "NdisLinkSpeed: " & vbTab & objItem.NdisLinkSpeed/10 & " kbps" 
Next
MsgBox strRslt,vbInformation+&h51000, "speed"
© www.soinside.com 2019 - 2024. All rights reserved.