【发布时间】:2023-04-05 02:07:01
【问题描述】:
我不是程序员,但我正在尝试通过使用 VBScripts 来扩展 Bginfo 可以从计算机收集的信息量。我有一些工作,但一些 WMI 查询返回多行值。我想将这些多行拆分,以便我可以单独使用它们。这是我部分地从 WMIGen 创建的示例:
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
strComputer = "."
Dim Installed
Dim Size
Set objWMIService = GetObject( "winmgmts://" & strComputer & "/root/cimv2" )
Set colSlots = objWMIService.ExecQuery( "SELECT * FROM Win32_PhysicalMemoryArray", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly )
Set colMem = objWMIService.ExecQuery( "SELECT * FROM Win32_PhysicalMemory", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly )
On Error Resume Next
For Each objSlot In colSlots
TotalSlots = objSlot.MemoryDevices
Next
For Each objMem In colMem
MemDevices = objMem.DeviceLocator
PartNumbers = objMem.PartNumber
Size = Round(objMem.Capacity / 1073741824) & " GB"
Next
On Error Goto 0
MemDevices、PartNumbers 和 Size 都会根据内存设备的数量给出多行结果。如何单独获取每行的值并将它们变成变量?这是我正在考虑的外观:
RAM 1: Size in GB, Part Number, slot number on board.
RAM 2: Size in GB, Part number, slot number on board
"" Continue the list for the remaining RAM sticks ""
【问题讨论】:
-
能否请您与
MemDevices、PartNumbers和Size共享屏幕截图,为您实际输出,以及您期望的输出。我已经尝试了代码,它准确地显示了每个插槽中的内容,包括部件号和尺寸。 -
我知道代码没有问题。例如,如果您有 4 个 DIMM,则 MemDevices 查询将返回 4 行。我想做的是学习如何将每一行变成变量。这样我就可以在 Bginfo 中分别列出每个插槽的大小、部件号和插槽号。