Measure-Object
計算物件的數值屬性,以及字串物件 (例如文字檔案) 中的字元數、文字數和行數。
語法
Measure-Object
[-InputObject <PSObject>]
[[-Property] <String[]>]
[-Sum]
[-Average]
[-Maximum]
[-Minimum]
[<CommonParameters>]
Measure-Object
[-InputObject <PSObject>]
[[-Property] <String[]>]
[-Line]
[-Word]
[-Character]
[-IgnoreWhiteSpace]
[<CommonParameters>]
Description
Cmdlet Measure-Object
會計算特定物件類型的屬性值。
Measure-Object
會根據命令中的參數,執行三種類型的度量。
Cmdlet Measure-Object
會對 物件的屬性值執行計算。 您可以使用 Measure-Object
來計算具有指定 Property 的物件或計數物件。 您也可以使用 來計算數值的最小值、最大值、總和、StandardDeviation 和 Average。Measure-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
匯入檔案時,結果是具有 EmpNo 和 Years 附注屬性的 PSCustomObject。
您可以使用 Measure-Object
來計算這些屬性的值,就像物件的任何其他屬性一樣。
Import-Csv d:\test\serviceyrs.csv | Measure-Object -Property years -Minimum -Maximum -Average
範例 6:測量布爾值
此範例示範 如何 Measure-Object
測量布爾值。
在此情況下,它會使用 PSIsContainer Boolean 屬性來測量目前目錄中資料夾(與檔案)的發病率。
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
參數
-Average
指出 Cmdlet 會顯示指定屬性的平均值。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Character
指出 Cmdlet 會計算輸入物件中的字元數。
注意
Word、Char 和 Line 會切換每個輸入物件內的計數,以及跨輸入物件。 請參閱範例 7。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-IgnoreWhiteSpace
表示 Cmdlet 會忽略字元計數中的空格符。 根據預設,不會忽略空格符。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-InputObject
指定要測量的物件。 輸入包含 物件的變數,或輸入取得物件的命令或表達式。
當您搭配 使用 InputObject 參數時Measure-Object
,將 InputObject 值視為單一物件,而不是將命令結果管線傳送至 Measure-Object
。
如果您要根據物件是否具有定義屬性中的特定值來測量物件的集合,建議您 Measure-Object
在管線中使用 。
類型: | PSObject |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Line
指出 Cmdlet 會計算輸入物件中的行數。
注意
Word、Char 和 Line 會切換每個輸入物件內的計數,以及跨輸入物件。 請參閱範例 7。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Maximum
指出 Cmdlet 會顯示指定屬性的最大值。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Minimum
指出 Cmdlet 會顯示指定屬性的最小值。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Property
指定要測量的一或多個屬性。 如果您未指定任何其他量值, Measure-Object
則會計算具有您指定之屬性的物件。
類型: | String[] |
Position: | 0 |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | True |
-Sum
指出 Cmdlet 會顯示指定屬性的值總和。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Word
指出 Cmdlet 會計算輸入物件中的字數。
注意
Word、Char 和 Line 會切換每個輸入物件內的計數,以及跨輸入物件。 請參閱範例 7。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
您可以使用管線將物件傳送至此 Cmdlet。
輸出
根據預設,此 Cmdlet 會 傳回 GenericMeasureInfo 物件。
當您使用 Word 參數時,這個 Cmdlet 會 傳回 TextMeasureInfo 物件。
備註
Windows PowerShell 包含下列的 Measure-Object
別名:
measure