【问题标题】:How do I return only the integer sum of Measure-Object in PowerShell?如何在 PowerShell 中仅返回 Measure-Object 的整数和?
【发布时间】:2011-09-13 20:33:00
【问题描述】:

如果我在 PowerShell 中运行以下命令,它将返回给我一个带有 WorkingSet 属性总和的对象:

PS > get-process chrome | measure-object WorkingSet -sum

Count    : 36
Average  :
Sum      : 2377129984
Maximum  :
Minimum  :
Property : WorkingSet

如果我只想返回 Sum 值,我发现的唯一方法是:

PS > $a = get-process chrome | measure-object WorkingSet -sum
PS > $a.Sum
2359980032

有没有办法将原始命令传递给其他命令,以便我一步返回整数?像这样的:

PS > get-process chrome | measure-object WorkingSet -sum | {some other command}

【问题讨论】:

    标签: powershell


    【解决方案1】:

    是的,使用Select-Object

    Get-Process chrome | Measure-Object WorkingSet -sum | Select-Object -expand Sum
    

    当人们只需要原始对象的一些属性时,使用 Select-Object。它创建一个新对象并将所需属性复制到新对象。

    Get-Process | Select-Object -property ProcessName, Handles
    

    如果您需要(从一个属性)提取值,请使用参数-expandProperty 而不是-property

    Get-Process | Select-Object -expand ProcessName
    

    请注意,您可以计算返回值:

    get-process | Select-Object -property @{Name='descr'; Expression={"{0} - {1}" -f $_.ProcessName, $_.Handles }}
    

    【讨论】:

      【解决方案2】:

      只需使用括号将管道命令括起来:

      (get-process chrome | measure-object WorkingSet -sum).sum
      

      通常,PowerShell 将括号中的任何内容视为您可以通过属性/方法引用的对象。

      【讨论】:

        【解决方案3】:

        另一种方式:

        (get-process chrome | measure-object WorkingSet -sum).sum
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-23
          • 2012-01-12
          • 1970-01-01
          • 2023-03-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多