Measure-Object

Vypočítá číselné vlastnosti objektů a znaky, slova a řádky v řetězcových objektech, jako jsou soubory textu.

Syntaxe

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

Rutina Measure-Object vypočítá hodnoty vlastností určitých typů objektů. Measure-Object provádí tři typy měření v závislosti na parametrech v příkazu.

Rutina Measure-Object provádí výpočty s hodnotami vlastností objektů. Pomocí této funkce můžete Measure-Object spočítat objekty nebo spočítat objekty se zadanou vlastností. Můžete také použít Measure-Object k výpočtu hodnoty Minimum, Maximum, Sum, StandardDeviation a Průměr číselných hodnot. U objektů String můžete také spočítat Measure-Object počet řádků, slov a znaků.

Příklady

Příklad 1: Počítání souborů a složek v adresáři

Tento příkaz spočítá soubory a složky v aktuálním adresáři.

Get-ChildItem | Measure-Object

Příklad 2: Měření souborů v adresáři

Tento příkaz zobrazí minimální, maximální a součet velikostí všech souborů v aktuálním adresáři a průměrnou velikost souboru v adresáři.

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

Příklad 3: Měření textu v textovém souboru

Tento příkaz zobrazí počet znaků, slov a řádků v souboru Text.txt. Bez parametru Get-Content Raw vypíše soubor jako pole řádků.

První příkaz použije Set-Content k přidání výchozího textu do souboru.

"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

Příklad 4: Měření objektů obsahujících zadanou vlastnost

Tento příklad spočítá počet objektů, které mají DisplayName vlastnost. První dva příkazy načítají všechny služby a procesy na místním počítači. Třetí příkaz spočítá kombinovaný počet služeb a procesů. Poslední příkaz kombinuje dvě kolekce a kanály výsledek na Measure-Object.

Objekt System.Diagnostics.Process nemá vlastnost DisplayName a je vynecháno z konečného počtu.

$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

Příklad 5: Měření obsahu souboru CSV

Tento příkaz vypočítá průměrné roky služby zaměstnanců společnosti.

Soubor ServiceYrs.csv je soubor CSV, který obsahuje počet zaměstnanců a roky služby každého zaměstnance. První řádek v tabulce je řádek záhlaví EmpNo, Years.

Import-Csv Při importu souboru je výsledkem PSCustomObject s poznámkami vlastnosti EmpNo a Years. Můžete použít Measure-Object k výpočtu hodnot těchto vlastností, stejně jako jakékoli jiné vlastnosti objektu.

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

Příklad 6: Měření logických hodnot

Tento příklad ukazuje, jak Measure-Object lze měřit logické hodnoty. V tomto případě používá vlastnost PSIsContainer Boolean k měření výskytu složek (vs. souborů) v aktuálním adresáři.

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

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

Příklad 7: Řetězce měr

Následující příklad měří počet řádků, nejprve jeden řetězec a pak napříč několika řetězci. Znak `n nového řádku odděluje řetězce do více řádků.

# 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

Příklad 8: Měření všech hodnot

Počínaje PowerShellem 6 umožňuje parametr Measure-Object AllStats měřit všechny statistiky společně.

1..5 | Measure-Object -AllStats

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

Příklad 9: Měření pomocí vlastností scriptblock

Počínaje PowerShellem 6 Measure-Object podporuje vlastnosti ScriptBlock . Následující příklad ukazuje, jak použít ScriptBlock vlastnost určit velikost, v MegaBytes, všechny soubory v adresáři.

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

Příklad 10: Měření hashovatelných tabulek

Počínaje PowerShellem 6 Measure-Object podporuje měření hodnot hashovatelného vstupu. Následující příklad určuje největší hodnotu klíče num 3 hashtable objektů.

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

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

Příklad 11: Měření směrodatné odchylky

Počínaje PowerShellem 6 Measure-Object podporuje -StandardDeviation parametr. Následující příklad určuje směrodatnou odchylku procesoru používaného všemi procesy. Velká odchylka značí malý počet procesů, které spotřebovávají nejvíce procesoru.

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

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

Příklad 12: Míra pomocí zástupných znaků

Počínaje PowerShellem 6 Measure-Object podporuje měření objektů pomocí zástupných znaků v názvech vlastností. Následující příklad určuje maximální počet typů stránkované paměti využití mezi sadou procesů.

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

Parametry

-AllStats

Označuje, že rutina zobrazí všechny statistiky zadaných vlastností.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Average

Označuje, že rutina zobrazuje průměrnou hodnotu zadaných vlastností.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Character

Označuje, že rutina spočítá počet znaků ve vstupních objektech.

Poznámka:

Přepínače Word, Char a Line se počítají uvnitř každého vstupního objektu i mezi vstupními objekty. Viz příklad 7.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-IgnoreWhiteSpace

Označuje, že rutina ignoruje prázdné znaky v počtu znaků. Ve výchozím nastavení není prázdné znaky ignorovány.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-InputObject

Určuje objekty, které se mají měřit. Zadejte proměnnou, která obsahuje objekty, nebo zadejte příkaz nebo výraz, který objekty získá.

Pokud použijete inputObject parametr s Measure-Object, místo piping command výsledky do Measure-Object, InputObject hodnota je považována za jeden objekt.

Pokud chcete změřit kolekci objektů na základě toho, jestli mají objekty konkrétní hodnoty v definovaných vlastnostech, doporučujeme použít Measure-Object v kanálu.

Typ:PSObject
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Line

Označuje, že rutina spočítá počet řádků ve vstupních objektech.

Poznámka:

Přepínače Word, Char a Line se počítají uvnitř každého vstupního objektu i mezi vstupními objekty. Viz příklad 7.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Maximum

Označuje, že rutina zobrazuje maximální hodnotu zadaných vlastností.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Minimum

Označuje, že rutina zobrazí minimální hodnotu zadaných vlastností.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Property

Určuje jednu nebo více vlastností, které se mají měřit. Pokud nezadáte žádné jiné míry, Measure-Object spočítá objekty, které mají zadané vlastnosti.

Hodnota parametru Property může být nová počítaná vlastnost. Počítaná vlastnost musí být blok skriptu. Další informace najdete v tématu about_Calculated_Properties.

Typ:PSPropertyExpression[]
Position:0
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:True

-StandardDeviation

Označuje, že rutina zobrazuje směrodatnou odchylku hodnot zadaných vlastností.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Sum

Označuje, že rutina zobrazí součet hodnot zadaných vlastností.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Word

Označuje, že rutina spočítá počet slov ve vstupních objektech.

Poznámka:

Přepínače Word, Char a Line se počítají uvnitř každého vstupního objektu i mezi vstupními objekty. Viz příklad 7.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

PSObject

Objekty můžete do této rutiny pipetovat.

Výstupy

GenericMeasureInfo

Ve výchozím nastavení vrátí tato rutina objekt GenericMeasureInfo .

TextMeasureInfo

Pokud používáte parametr Wordu , vrátí tato rutina objekt TextMeasureInfo .

Poznámky

PowerShell obsahuje následující aliasy pro Measure-Object:

  • Všechny platformy:
    • measure

Počínaje PowerShellem 7.3 již nevrátí chybu při zpracování objektu, který chybí měřenou vlastnost, Measure-Object pokud neběžíte v StrictMode. V StrictMode vrátí Measure-Object System.Management.Automation.PSArgumentException při zpracování objektu, který chybí zadaná vlastnost.