Measure-Object

计算对象的数值属性,以及字符串对象(如文本文件)中的字符、单词和行。

语法

Measure-Object
       [[-Property] <PSPropertyExpression[]>]
       [-InputObject <PSObject>]
       [-StandardDeviation]
       [-Sum]
       [-AllStats]
       [-Average]
       [-Maximum]
       [-Minimum]
       [<CommonParameters>]
Measure-Object
       [[-Property] <PSPropertyExpression[]>]
       [-InputObject <PSObject>]
       [-Line]
       [-Word]
       [-Character]
       [-IgnoreWhiteSpace]
       [<CommonParameters>]

说明

Measure-Object cmdlet 计算特定类型的对象的属性值。 Measure-Object 根据命令中的参数执行三种类型的度量。

Measure-Object cmdlet 对对象的属性值执行计算。 可用于 Measure-Object 计算具有指定 属性的对象或计数对象。 还可以用于 Measure-Object 计算数值的 最小值最大值总和标准缓解平均值 。 对于 String 对象,还可以用于 Measure-Object 计算行数、字词和字符数。

示例

示例 1:计数目录中的文件和文件夹

此命令对当前目录中的文件和文件夹进行计数。

Get-ChildItem | Measure-Object

示例 2:度量目录中的文件

此命令显示当前目录中所有文件的大小 的最小值最大值总和 ,以及目录中文件的平均大小。

Get-ChildItem | Measure-Object -Property length -Minimum -Maximum -Average

示例 3:度量文本文件中的文本

此命令显示 Text.txt 文件中的字符数、字数和行数。 如果没有 Raw 参数, Get-Content 则以行数组的形式输出文件。

第一个命令用于 Set-Content 向文件添加一些默认文本。

"One", "Two", "Three", "Four" | Set-Content -Path C:\Temp\tmp.txt
Get-Content C:\Temp\tmp.txt | Measure-Object -Character -Line -Word

Lines Words Characters Property
----- ----- ---------- --------
    4     4         15

示例 4:度量包含指定属性的对象

此示例计算具有 DisplayName 属性的对象数。 前两个命令检索本地计算机上的所有服务和进程。 第三个命令计算合并的服务和进程数。 最后一个命令将结果合并到的两个集合和管道。Measure-Object

System.Diagnostics.Process 对象没有 DisplayName 属性,并且被排除在最终计数中。

$services = Get-Service
$processes = Get-Process
$services + $processes | Measure-Object
$services + $processes | Measure-Object -Property DisplayName

Count    : 682
Average  :
Sum      :
Maximum  :
Minimum  :
Property :

Count    : 290
Average  :
Sum      :
Maximum  :
Minimum  :
Property : DisplayName

示例 5:度量 CSV 文件的内容

此命令计算一家公司雇员的平均服务年限。

该文件 ServiceYrs.csv 是一个 CSV 文件,其中包含每个员工的员工服务年数和年数。 表中的第一行是 EmpNoYears 的标题行。

用于 Import-Csv 导入文件时,结果为 PSCustomObject ,其中包含 EmpNoYears 的注释属性。 可用于 Measure-Object 计算这些属性的值,就像对象的任何其他属性一样。

Import-Csv d:\test\serviceyrs.csv | Measure-Object -Property years -Minimum -Maximum -Average

示例 6:度量布尔值

此示例演示如何 Measure-Object 度量布尔值。 在这种情况下,它使用 PSIsContainerBoolean 属性来度量当前目录中文件夹 (与文件) 的发病率。

Get-ChildItem | Measure-Object -Property psiscontainer -Maximum -Sum -Minimum -Average

Count             : 126
Average           : 0.0634920634920635
Sum               : 8
Maximum           : 1
Minimum           : 0
StandardDeviation :
Property          : PSIsContainer

示例 7:度量字符串

以下示例测量行数,首先测量单个字符串,然后跨多个字符串。 换行符 `n 将字符串分隔成多行。

# The newline character `n separates the string into separate lines, as shown in the output.
"One`nTwo`nThree"
"One`nTwo`nThree" | Measure-Object -Line

One
Two
Three


Lines Words Characters Property
----- ----- ---------- --------
    3

# The first string counts as a single line.
# The second string is separated into two lines by the newline character.
"One", "Two`nThree" | Measure-Object -Line

Lines Words Characters Property
----- ----- ---------- --------
    3

# The Word switch counts the number of words in each InputObject
# Each InputObject is treated as a single line.
"One, Two", "Three", "Four Five" | Measure-Object -Word -Line

Lines Words Characters Property
----- ----- ---------- --------
    3     5

示例 8:度量所有值

从 PowerShell 6 开始, AllStats 参数 Measure-Object 允许你一起测量所有统计信息。

1..5 | Measure-Object -AllStats

Count             : 5
Average           : 3
Sum               : 15
Maximum           : 5
Minimum           : 1
StandardDeviation : 1.58113883008419
Property          :

示例 9:使用 scriptblock 属性进行度量

从 PowerShell 6 开始, Measure-Object 支持 ScriptBlock 属性。 以下示例演示如何使用 ScriptBlock 属性来确定目录中所有文件的大小(以 MB 为单位)。

Get-ChildItem | Measure-Object -Sum {$_.Length/1MB}

示例 10:度量哈希表

从 PowerShell 6 开始, Measure-Object 支持测量 哈希表 输入。 以下示例确定 3 个哈希表对象的键的最大值num

@{num=3}, @{num=4}, @{num=5} | Measure-Object -Maximum Num

Count             : 3
Average           :
Sum               :
Maximum           : 5
Minimum           :
StandardDeviation :
Property          : num

示例 11:度量标准偏差

从 PowerShell 6 开始, Measure-Object 支持参数 -StandardDeviation 。 以下示例确定所有进程使用的 CPU 的标准偏差 。 较大的偏差表示占用最多 CPU 的少量进程。

Get-Process | Measure-Object -Average -StandardDeviation CPU

Count             : 303
Average           : 163.032384488449
Sum               :
Maximum           :
Minimum           :
StandardDeviation : 859.444048419069
Property          : CPU

示例 12:使用通配符进行度量

从 PowerShell 6 开始, Measure-Object 支持在属性名称中使用通配符测量对象。 以下示例确定一组进程之间任何类型的分页内存使用率上限。

Get-Process | Measure-Object -Maximum *paged*memory*size

Count             : 303
Average           :
Sum               :
Maximum           : 735784
Minimum           :
StandardDeviation :
Property          : NonpagedSystemMemorySize

Count             : 303
Average           :
Sum               :
Maximum           : 352104448
Minimum           :
StandardDeviation :
Property          : PagedMemorySize

Count             : 303
Average           :
Sum               :
Maximum           : 2201968
Minimum           :
StandardDeviation :
Property          : PagedSystemMemorySize

Count             : 303
Average           :
Sum               :
Maximum           : 719032320
Minimum           :
StandardDeviation :
Property          : PeakPagedMemorySize

参数

-AllStats

指示 cmdlet 显示指定属性的所有统计信息。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Average

指示该 cmdlet 显示指定属性的平均值。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Character

指示 cmdlet 计算输入对象中的字符数。

注意

WordCharLine 切换每个输入对象内的计数,以及输入对象。 请参阅示例 7。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IgnoreWhiteSpace

指示 cmdlet 忽略字符计数中的空格。 默认情况下,不忽略空格。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

指定要测量的对象。 输入一个包含对象的变量,或键入可获取对象的命令或表达式。

InputObject 参数与 一起使用Measure-Object时,将 InputObject 值视为单个对象,而不是管道命令结果Measure-Object

Measure-Object如果要根据对象是否具有定义的属性中的特定值来度量对象的集合,建议在管道中使用。

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Line

指示 cmdlet 计算输入对象中的行数。

注意

WordCharLine 切换每个输入对象内的计数,以及输入对象。 请参阅示例 7。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Maximum

指示该 cmdlet 显示指定属性的最大值。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Minimum

指示该 cmdlet 显示指定属性的最小值。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Property

指定要度量的一个或多个属性。 如果未指定任何其他度量值, Measure-Object 则计算具有指定属性的对象。

Property 参数的值可以是新的计算属性。 计算属性必须是脚本块。 有关详细信息,请参阅 about_Calculated_Properties

Type:PSPropertyExpression[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-StandardDeviation

指示 cmdlet 显示指定属性的值的标准偏差。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Sum

指示该 cmdlet 显示指定属性的值的总和。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Word

指示 cmdlet 计算输入对象中的单词数。

注意

WordCharLine 切换每个输入对象内的计数,以及输入对象。 请参阅示例 7。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

PSObject

可以通过管道将对象传递给 Measure-Object

输出

GenericMeasureInfo

TextMeasureInfo

如果使用 Word 参数, Measure-Object 则返回 TextMeasureInfo 对象。 否则,它返回 GenericMeasureInfo 对象。