Measure-Object

計算物件的數值屬性,以及字串物件中的字元、單字和行,例如文字檔案。

Syntax

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

Description

Cmdlet Measure-Object 會計算特定物件類型的屬性值。 Measure-Object 會根據命令中的參數,執行三種類型的度量。

Cmdlet Measure-Object 會對 物件的屬性值執行計算。 您可以使用 Measure-Object 來計算具有指定 Property 的物件或計數物件。 您也可以使用 來計算數值的最小值最大值和、StandardDeviationAverageMeasure-Object 針對 String 物件,您也可以使用 Measure-Object 來計算行數、單字和字元數。

範例

範例 1:計算目錄中的檔案和資料夾

此命令會計算目前目錄中的檔案和資料夾。

Get-ChildItem | Measure-Object

範例 2:測量目錄中的檔案

此命令會顯示目前目錄中所有檔案大小下限、最大值和總,以及目錄中檔案的平均大小。

Get-ChildItem | Measure-Object -Property length -Minimum -Maximum -Sum -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 檔案,其中包含每位員工的員工服務次數和年份。 數據表中的第一個數據列是 EmpNo,Years標頭數據列。

當您使用 Import-Csv 匯入檔案時,結果是具有 EmpNoYears 附注屬性的 PSCustomObject。 您可以使用 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 開始,Measure-Object AllStats 參數可讓您一起測量所有統計數據。

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

您可以使用管線將物件傳送至此 Cmdlet。

輸出

GenericMeasureInfo

根據預設,此 Cmdlet 會 傳回 GenericMeasureInfo 物件。

TextMeasureInfo

當您使用 Word 參數時,這個 Cmdlet 會 傳回 TextMeasureInfo 物件。

備註

PowerShell 包含下列的 Measure-Object別名:

  • 所有平臺:
    • measure