我试图将cpu信息获取到Powershell中的变量中,我可以通过多种方式获取cpu信息,即
Get-WmiObject win32_processor | select LoadPercentage |fl
产生
PS C:\powershell> Get-WmiObject win32_processor | select LoadPercentage |fl
LoadPercentage : 15
但是如何将这个“ 15”值转换为变量以供以后使用。最初,我以为我可以将命令的输出分配给变量,然后进行拆分或字符串操作,但是运气不好,因为输出似乎是呈现为字符串的对象数组。
答案 0 :(得分:2)
如果您执行format-list
或其他一些输出,则将其分配给变量很困难。
如果您丢下|fl
,那应该不错。
$CPULoad = Get-WmiObject win32_processor | select LoadPercentage
然后您可以执行$CPULoad
并获得
LoadPercentage
--------------
15
或者您可以执行$CPULoad.LoadPercentage
并将以下内容作为int
5
答案 1 :(得分:-1)
Get-WmiObject Win32_Processor
可以通过使用gwmi
别名来缩短:
gwmi win32_Processor
您需要的是一种仅选择所需信息的好方法。
为此,选择所需的属性。
然后,将返回的对象通过管道传递到Select-Object
cmdlet。
这是为了删除返回的WMI对象自动包含的系统属性。
为避免两次键入属性(一次输入Get-WmiObject
cmdlet,一次输入一次Select-Object
cmdlet),请将属性数组存储在$property
变量中。
在这种情况下,只有一个。
您可以通过以下方式获得列表:
$property = "systemname","maxclockspeed","addressWidth","numberOfCores"
但是您只想:
$property = "LoadPercentage"
Get-WmiObject -class win32_processor -Property $property |
Select-Object -Property $property