如何在PowerShell中仅返回Measure-Object的整数和?

时间:2011-09-13 20:33:00

标签: powershell

如果我在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}

3 个答案:

答案 0 :(得分:13)

是的,请使用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 }}

答案 1 :(得分:9)

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

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

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

答案 2 :(得分:4)

另一种方式:

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