【问题标题】:Powershell get Get-Measure property valuePowershell 获取 Get-Measure 属性值
【发布时间】: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


【解决方案1】:

要从自定义对象中“提取”单个属性,您可以像这样使用-ExpandProperty

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

【讨论】:

  • 不理解对这个答案的反对意见。赞成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-22
  • 2022-12-14
  • 2013-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-26
相关资源
最近更新 更多