【发布时间】:2018-10-17 02:16:13
【问题描述】:
如何通过管道获取 Get-Measure Count 属性值而不用括号括起来? (Powershell 版本 5)
我想要alias | measure | $_.Count之类的东西。
TL;DR
假设我想在 Powershell 中计算别名的数量,所以我去
alias | measure | Select-Object -Property Count
返回 PSCustomObject 而不是我正在寻找的 Int32。
我可以
alias | measure | foreach { $_.Count }
它依赖于Get-Measure 返回一个且仅一个对象。它适用于这种简单的情况,但即使在 IMO 上也很丑陋。
另一个可行的解决方案是
( alias | measure ).Count
但我真的不喜欢用括号括起来,尤其是当alias|..|..|..|measure 代码变长时。
终于可以了
alias | measure | % { $_.Count }
这似乎是最好的。但是{...} 让我很恼火。
后一个版本是迄今为止最好的。
【问题讨论】:
-
为什么不使用这个:
Get-Alias | Measure-Object | Select-Object -ExpandProperty Count -
Select-Object通常会返回具有选定属性的自定义对象。要仅获取属性的值,您需要扩展该属性(见上文)。 -
@Olaf 请写下您的评论作为答案。这正是我想要的。
标签: powershell