我试图用VBScript列出Lenovo计算机的BIOS设置,并将结果写入文件。我已经到了可以将内容写入文本文件的地步,但是它只能写入第一个设置(记录)。如何将所有设置一个一个地写入一个文件?
On Error Resume Next
Dim colItems, fso
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
Set f = fso.CreateTextFile("bios-settings" & ".txt", True)
strComputer = "LOCALHOST"
strOptions
Set objWMIService = GetObject("WinMgmts:" _
&"{ImpersonationLevel=Impersonate}!\\" & strComputer & "\root\wmi")
Set colItems = objWMIService.ExecQuery("Select * from Lenovo_BiosSetting")
For Each objItem In colItems
If Len(objItem.CurrentSetting) > 0 Then
Setting = ObjItem.CurrentSetting
StrItem = Left(ObjItem.CurrentSetting, InStr(ObjItem.CurrentSetting, ",") - 1)
StrValue = Mid(ObjItem.CurrentSetting, InStr(ObjItem.CurrentSetting, ",") + 1, 256)
Set selItems = objWMIService.ExecQuery("Select * from Lenovo_GetBiosSelections")
For Each objItem2 In selItems
objItem2.GetBiosSelections StrItem + ";", strOptions
Next
f.WriteLine StrItem
f.WriteLine " current setting = " + StrValue
f.WriteLine " possible settings = " + strOptions
f.WriteLine
End If
f.Close
Next
这是实际写入文件的部分:
f.WriteLine StrItem
f.WriteLine " current setting = " + StrValue
f.WriteLine " possible settings = " + strOptions
f.WriteLine
它将写入BIOS设置名称(StrItem
),当前设置值(StrValue
)和可能的设置值(strOptions
)。
答案 0 :(得分:1)
您需要做的第一件事就是删除
on error resume next
来自您的脚本。仅应在特定情况下使用它来进行错误处理,而不能作为偷懒开发者的捷径。
如果这样做,将会因无法写入关闭的文件而报错。
然后导致实际错误,您是在第一次写入后关闭文件。
移动行
f.Close
在您的每个循环之外,它可能会更好地工作。