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
コマンドレットは、特定の種類のオブジェクトのプロパティ値を計算します。
Measure-Object
は、コマンドのパラメーターに応じて 3 種類の測定を実行します。
Measure-Object
コマンドレットは、オブジェクトのプロパティ値に対して計算を実行します。 Measure-Object
を使用して、指定したPropertyを持つオブジェクトをカウントしたり、オブジェクトをカウントしたりできます。 Measure-Object
を使用して、数値の Minimum、Maximum、Sum、StandardDeviation および Average を計算することもできます。 String オブジェクトの場合は、Measure-Object
を使用して行、単語、および文字の数をカウントすることもできます。
例
例 1: ディレクトリ内のファイルとフォルダーをカウントする
このコマンドは、現在のディレクトリ内のファイルとフォルダーをカウントします。
Get-ChildItem | Measure-Object
例 2: ディレクトリ内のファイルを測定する
このコマンドは Minimum、 Maximum、 Sum 現在のディレクトリ内のすべてのファイルのサイズ、およびディレクトリ内のファイルの平均サイズを表示します。
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 プロパティを持つオブジェクトの数をカウントします。 最初の 2 つのコマンドは、ローカル コンピューター上のすべてのサービスとプロセスを取得します。 3 番目のコマンドは、サービスとプロセスの組み合わせ数をカウントします。 最後のコマンドは、2 つのコレクションを結合し、結果を 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
を使用してファイルをインポートすると、結果は PSCustomObject EmpNo と Years のメモ プロパティが含まれます。
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: 文字列を測定する
次の例では、行数を測定し、最初に 1 つの文字列を、次に複数の文字列にわたって測定します。 改行文字 `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 プロパティを使用して、ディレクトリ内のすべてのファイルのサイズ (MegaBytes) を決定する方法を示します。
Get-ChildItem | Measure-Object -Sum {$_.Length/1MB}
例 10: ハッシュテーブルを測定する
PowerShell 6 以降、 Measure-Object
では、 ハッシュテーブル 入力の測定がサポートされています。 次の例では、3 hashtable オブジェクトの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
指定したプロパティのすべての統計情報がコマンドレットに表示されることを示します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Average
指定したプロパティの平均値がコマンドレットに表示されることを示します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Character
コマンドレットが入力オブジェクトの文字数をカウントすることを示します。
Note
Word、Char、および Line スイッチは、各入力オブジェクトinsideacross入力オブジェクトの数を切り替えます。 例 7 を参照してください。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-IgnoreWhiteSpace
コマンドレットが文字数の空白を無視することを示します。 既定では、空白は無視されません。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InputObject
測定するオブジェクトを指定します。 オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
InputObjectパラメーターをMeasure-Object
と共に使用すると、コマンドの結果をMeasure-Object
にパイプするのではなく、InputObject 値が 1 つのオブジェクトとして扱われます。
定義されたプロパティでオブジェクトに特定の値が含まれているかどうかに基づいてオブジェクトのコレクションを測定する場合は、パイプラインで Measure-Object
を使用することをお勧めします。
型: | PSObject |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Line
コマンドレットが入力オブジェクトの行数をカウントすることを示します。
Note
Word、Char、および Line スイッチは、各入力オブジェクトinsideacross入力オブジェクトの数を切り替えます。 例 7 を参照してください。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Maximum
指定したプロパティの最大値がコマンドレットに表示されることを示します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Minimum
指定したプロパティの最小値がコマンドレットに表示されることを示します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Property
測定する 1 つ以上のプロパティを指定します。 他のメジャーを指定しない場合、 Measure-Object
は、指定したプロパティを持つオブジェクトをカウントします。
Property パラメーターの値には、新しい計算プロパティを指定できます。 計算プロパティはスクリプト ブロックである必要があります。 詳細については、「 about_Calculated_Properties」を参照してください。
型: | PSPropertyExpression[] |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-StandardDeviation
指定したプロパティの値の標準偏差がコマンドレットに表示されることを示します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Sum
指定したプロパティの値の合計がコマンドレットに表示されることを示します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Word
コマンドレットが入力オブジェクト内の単語数をカウントすることを示します。
Note
Word、Char、および Line スイッチは、各入力オブジェクトinsideacross入力オブジェクトの数を切り替えます。 例 7 を参照してください。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
このコマンドレットにオブジェクトをパイプできます。
出力
既定では、このコマンドレットは GenericMeasureInfo オブジェクトを返します。
Word パラメーターを使用すると、このコマンドレットは TextMeasureInfo オブジェクトを返します。
メモ
PowerShell には、 Measure-Object
の次のエイリアスが含まれています。
- すべてのプラットフォーム:
measure
PowerShell 7.3 以降では、Measure-Object
StrictMode で実行していない限り、測定対象のプロパティがないオブジェクトを処理するときにエラー返されなくなります。 StrictMode では、Measure-Object
は、指定したプロパティがないオブジェクトを処理するときにSystem.Management.Automation.PSArgumentException
を返します。
関連リンク
PowerShell