Measure-Object

Oblicza właściwości liczbowe obiektów oraz znaki, wyrazy i wiersze w obiektach ciągów, takich jak pliki tekstu.

Składnia

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

Opis

Polecenie Measure-Object cmdlet oblicza wartości właściwości niektórych typów obiektów. Measure-Object wykonuje trzy typy pomiarów, w zależności od parametrów w poleceniu.

Polecenie Measure-Object cmdlet wykonuje obliczenia dotyczące wartości właściwości obiektów. Można użyć Measure-Object do zliczenia obiektów lub zliczać obiekty z określoną właściwością. Można również użyć Measure-Object do obliczenia wartości Minimum, Maximum, Sum, StandardDeviation i Average of liczbowych. W przypadku obiektów Ciąg można również użyć Measure-Object do zliczenia liczby wierszy, wyrazów i znaków.

Przykłady

Przykład 1. Zlicz pliki i foldery w katalogu

To polecenie zlicza pliki i foldery w bieżącym katalogu.

Get-ChildItem | Measure-Object

Przykład 2. Mierzenie plików w katalogu

To polecenie wyświetla minimalną, maksymalną i sumę rozmiarów wszystkich plików w bieżącym katalogu oraz średni rozmiar pliku w katalogu.

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

Przykład 3. Mierzenie tekstu w pliku tekstowym

To polecenie wyświetla liczbę znaków, wyrazów i wierszy w pliku Text.txt. Bez parametru Get-ContentRaw zwraca plik jako tablicę wierszy.

Pierwsze polecenie używa polecenia Set-Content w celu dodania domyślnego tekstu do pliku.

"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

Przykład 4. Mierzenie obiektów zawierających określoną właściwość

Ten przykład zlicza liczbę obiektów, które mają właściwość DisplayName . Pierwsze dwa polecenia pobierają wszystkie usługi i procesy na komputerze lokalnym. Trzecie polecenie zlicza łączną liczbę usług i procesów. Ostatnie polecenie łączy dwie kolekcje i potokuje wynik do Measure-Object.

Obiekt System.Diagnostics.Process nie ma właściwości DisplayName i jest pominięty z końcowej liczby.

$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

Przykład 5. Mierzenie zawartości pliku CSV

To polecenie oblicza średnie lata obsługi pracowników firmy.

Plik ServiceYrs.csv jest plikiem CSV zawierającym liczbę pracowników i lata pracy każdego pracownika. Pierwszy wiersz w tabeli to wiersz nagłówka EmpNo, Years.

Podczas importowania Import-Csv pliku wynik jest obiektem PSCustomObject z właściwościami notatek EmpNo i Years. Za pomocą Measure-Object polecenia można obliczyć wartości tych właściwości, podobnie jak każda inna właściwość obiektu.

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

Przykład 6. Mierzenie wartości logicznych

W tym przykładzie pokazano, jak Measure-Object można mierzyć wartości logiczne. W tym przypadku używa właściwości logicznejPSIsContainer do mierzenia częstości występowania folderów (a plików) w bieżącym katalogu.

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

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

Przykład 7. Mierzenie ciągów

Poniższy przykład mierzy liczbę wierszy, najpierw jeden ciąg, a następnie kilka ciągów. Znak `n nowego wiersza oddziela ciągi na wiele wierszy.

# 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

Przykład 8. Mierzenie wszystkich wartości

Począwszy od programu PowerShell 6, parametr Measure-ObjectAllStats umożliwia mierzenie wszystkich statystyk razem.

1..5 | Measure-Object -AllStats

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

Przykład 9. Mierzenie przy użyciu właściwości scriptblock

Począwszy od programu PowerShell 6, Measure-Object obsługuje właściwości ScriptBlock . W poniższym przykładzie pokazano, jak za pomocą właściwości ScriptBlock określić rozmiar wszystkich plików w katalogu w megabajtach.

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

Przykład 10: Tabele skrótów miar

Począwszy od programu PowerShell 6, Measure-Object obsługuje pomiar danych wejściowych w formie skrótu . Poniższy przykład określa największą wartość klucza num 3 obiektów w formie skrótu .

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

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

Przykład 11: Mierzenie odchylenia standardowego

Począwszy od programu PowerShell 6, Measure-Object obsługuje -StandardDeviation parametr . Poniższy przykład określa odchylenie standardowe procesora CPU używanego przez wszystkie procesy. Duże odchylenie oznaczałoby niewielką liczbę procesów zużywających najwięcej procesora CPU.

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

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

Przykład 12. Mierzenie przy użyciu symboli wieloznacznych

Począwszy od programu PowerShell 6, Measure-Object obsługuje pomiar obiektów przy użyciu symboli wieloznacznych w nazwach właściwości. Poniższy przykład określa maksymalną liczbę typów stronicowanych użycia pamięci wśród zestawu procesów.

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

Wskazuje, że polecenie cmdlet wyświetla wszystkie statystyki określonych właściwości.

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

-Average

Wskazuje, że polecenie cmdlet wyświetla średnią wartość określonych właściwości.

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

-Character

Wskazuje, że polecenie cmdlet zlicza liczbę znaków w obiektach wejściowych.

Uwaga

Przełączniki Word, Char i Line są liczone wewnątrz każdego obiektu wejściowego, a także między obiektami wejściowymi. Zobacz przykład 7.

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

-IgnoreWhiteSpace

Wskazuje, że polecenie cmdlet ignoruje białe znaki w liczbach znaków. Domyślnie białe znaki nie są ignorowane.

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

-InputObject

Określa obiekty, które mają być mierzone. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty.

Jeśli używasz parametru InputObject z parametrem Measure-Object, zamiast potokowania wyników polecenia do Measure-Objectmetody , wartość InputObject jest traktowana jako pojedynczy obiekt.

Zaleca się użycie Measure-Object w potoku, jeśli chcesz zmierzyć kolekcję obiektów na podstawie tego, czy obiekty mają określone wartości we zdefiniowanych właściwościach.

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

-Line

Wskazuje, że polecenie cmdlet zlicza liczbę wierszy w obiektach wejściowych.

Uwaga

Przełączniki Word, Char i Line są liczone wewnątrz każdego obiektu wejściowego, a także między obiektami wejściowymi. Zobacz przykład 7.

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

-Maximum

Wskazuje, że polecenie cmdlet wyświetla maksymalną wartość określonych właściwości.

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

-Minimum

Wskazuje, że polecenie cmdlet wyświetla minimalną wartość określonych właściwości.

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

-Property

Określa co najmniej jedną właściwość do zmierzenia. Jeśli nie określisz żadnych innych miar, Measure-Object zlicza obiekty, które mają określone właściwości.

Wartość parametru Właściwości może być nową właściwością obliczeniową. Właściwość obliczeniowa musi być blokiem skryptu. Aby uzyskać więcej informacji, zobacz about_Calculated_Properties.

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

-StandardDeviation

Wskazuje, że polecenie cmdlet wyświetla odchylenie standardowe wartości określonych właściwości.

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

-Sum

Wskazuje, że polecenie cmdlet wyświetla sumę wartości określonych właściwości.

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

-Word

Wskazuje, że polecenie cmdlet zlicza liczbę wyrazów w obiektach wejściowych.

Uwaga

Przełączniki Word, Char i Line są liczone wewnątrz każdego obiektu wejściowego, a także między obiektami wejściowymi. Zobacz przykład 7.

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

Dane wejściowe

PSObject

Obiekty można potokować do tego polecenia cmdlet.

Dane wyjściowe

GenericMeasureInfo

Domyślnie to polecenie cmdlet zwraca obiekt GenericMeasureInfo .

TextMeasureInfo

Gdy używasz parametru programu Word , to polecenie cmdlet zwraca obiekt TextMeasureInfo .

Uwagi

Program PowerShell zawiera następujące aliasy dla Measure-Objectprogramu :

  • Wszystkie platformy:
    • measure

Począwszy od programu PowerShell 7.3, nie zwraca już błędu podczas przetwarzania obiektu, który nie ma mierzonej właściwości, Measure-Object chyba że jest uruchomiony w trybie StrictMode. W elemecie StrictModeMeasure-Object zwraca wartość System.Management.Automation.PSArgumentException podczas przetwarzania obiektu, który nie ma określonej właściwości.