需要帮助将 WMI 值转换为 VBScript 变量
Need help converting WMI values to VBScript variables
我不是程序员,但我正在尝试使用 VBScript 扩展 Bginfo 可以从计算机收集的信息量。我有一些工作,但一些 WMI 查询 return 多行值。我想将这些多行分开,以便我可以单独使用它们。这是我从 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 ""
如果您需要未定义数量的相同类型的变量,您可以在 VBScript 中使用数组变量。
对于与 Bginfo 实用程序一起使用,不需要该变量。
您可以在循环中生成信息:
i = 1
For Each objMem In colMem
MemDevices = objMem.DeviceLocator
PartNumbers = objMem.PartNumber
Size = Round(objMem.Capacity / 1073741824) & " GB"
Echo "RAM " & i & " Size: " & Size & " Part Nr. " & PartNumbers
i = i + 1
Next
我不是程序员,但我正在尝试使用 VBScript 扩展 Bginfo 可以从计算机收集的信息量。我有一些工作,但一些 WMI 查询 return 多行值。我想将这些多行分开,以便我可以单独使用它们。这是我从 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 ""
如果您需要未定义数量的相同类型的变量,您可以在 VBScript 中使用数组变量。 对于与 Bginfo 实用程序一起使用,不需要该变量。 您可以在循环中生成信息:
i = 1
For Each objMem In colMem
MemDevices = objMem.DeviceLocator
PartNumbers = objMem.PartNumber
Size = Round(objMem.Capacity / 1073741824) & " GB"
Echo "RAM " & i & " Size: " & Size & " Part Nr. " & PartNumbers
i = i + 1
Next