You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell 5:如何通过管道直接获取Get-Measure的Count属性值

解决PowerShell 5中管道提取Measure-Object Count值的问题

要在PowerShell 5里仅通过管道操作、不使用括号直接获取Measure-Object的Count属性值(返回Int32类型而非PSCustomObject),最贴合需求的方法是使用Select-Object的-ExpandProperty参数——它专门用于直接提取对象的属性值,而非返回包含该属性的包装对象。

具体命令示例

统计PowerShell别名数量的正确写法:

Get-Alias | Measure-Object | Select-Object -ExpandProperty Count

你也可以用PowerShell的内置别名简化命令,写法更简洁:

alias | measure | select -Expand Count

为什么这个方法更合适?

  • 对比Select-Object -Property Count:后者会返回一个包含Count属性的PSCustomObject(输出类似@{Count=156}),而-ExpandProperty会直接提取属性的原始值(比如整数156),完全符合你需要的Int32类型结果。
  • 对比ForEach-Object { $_.Count }:虽然这个写法也能生效,但Select-Object -ExpandProperty的语义更明确——它就是为提取属性值设计的,而ForEach-Object是通用的循环处理命令,更适合批量处理多个对象的场景。不过需要说明的是,Measure-Object本身只会返回单个MeasureInfo对象,所以两种方法在结果上没有差异,但前者更贴合你的需求场景。

为什么你期望的alias | measure | $_.Count写法不生效?

PowerShell的管道后必须接命令,不能直接引用变量或属性表达式,所以$_.Count无法单独作为管道的下一个环节,必须通过Select-Object或ForEach-Object这类命令来处理管道传递的对象。

内容的提问来源于stack exchange,提问作者LosManos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:48:02