# Creates a [pscustomobject] instance with
# .NumberOfCores and .NumberOfLogicalProcessors properties.
$cpuInfo =
Get-CimInstance –ClassName Win32_Processor |
Select-Object -Property NumberOfCores, NumberOfLogicalProcessors
# Save the values of interest in distinct variables, using a multi-assignment.
# Of course, you can also use the property values directly.
$cpuPhysicalCount, $cpuLogicalCount = $cpuInfo.NumberOfCores, $cpuInfo.NumberOfLogicalProcessors
4条答案
按热度按时间py49o6xq1#
Ran Turner's answer提供了关键的指针,但可以通过两种方式进行改进:
Get-CimInstance
)取代了WMI cmdlet(例如,PowerShell v3中的Get-WmiObject
)(2012年9月发布)。因此,应避免使用WMI cmdlet,尤其是因为PowerShell(核心)(v6+),所有未来的工作将在那里进行,甚至不再 * 有 * 它们。请注意,WMI仍然 * 支持 * CIM cmdlet,如需详细信息,请参阅this answer。Format-Table
与所有Format-*
cmdlet一样,旨在为 * 人类观察者 * 生成 * 供显示的格式 *,而 * 不 * 输出适用于以后 * 编程处理 * 的数据(有关详细信息,请参阅this answer)。Select-Object
cmdlet。(如果输出对象具有4个或更少的属性并且未被捕获,则它们 * 隐式 * 格式化为已调用Format-Table
;具有5个或更多属性,则它是隐式的Format-List
)。因此:
当然,如果您只对 values 感兴趣(CPU只计算为数字),则不需要 intermediate 对象,可以省略上面的
Select-Object
调用。至于一句 * 俏皮话 *:
如果您希望使用一行程序创建不同的变量,而不重复-costy-
Get-CimInstance
调用,则可以使用aux.变量,该变量利用PowerShell将赋值 * 用作表达式 * 的功能:(...)
中。$cpuPhysicalCount, $cpuLogicalCount =
部分。j91ykkif2#
使用PowerShell确定处理器核心数
Get-WmiObject –class Win32_processor | ft NumberOfCores,NumberOfLogicalProcessors
要了解正在运行的线程数,请执行以下操作:
(Get-Process|Select-Object -ExpandProperty Threads).Count
8tntrjer3#
有几个注解给出了类似的答案。
Get-WmiObject
已被弃用。使用Get-CimInstance
。不要在脚本中使用别名。将命令和参数拼写出来。显式比隐式好。更新日期:
如果只想将单个数值赋给变量。
raogr8fs4#
给出处理器的数量。当你有一个以上的插槽在使用时也能工作