Udostępnij za pośrednictwem


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 cmdlet Measure-Object 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 cmdlet Measure-Object wykonuje obliczenia na wartości właściwości obiektów. Za pomocą Measure-Object można liczyć obiekty lub obiekty z określoną właściwością . Można również użyć Measure-Object do obliczenia minimum, maksimum, Sum, StandardDeviation i Average wartości liczbowych. W przypadku obiektów String 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 minimalny, maksymalnyi Sum rozmiary 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 RawGet-Content zwraca plik jako tablicę wierszy.

Pierwsze polecenie używa Set-Content do 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ść

W tym przykładzie zlicza się 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 w celu 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 obsługi każdego pracownika. Pierwszy wiersz w tabeli to wiersz nagłówka EmpNo, Years.

W przypadku importowania pliku przy użyciu Import-Csv wynik jest PSCustomObject z właściwościami notatek EmpNo i Years. Za pomocą Measure-Object 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że mierzyć wartości logiczne. W tym przypadku używa właściwości PSIsContainerwartości logicznej, aby zmierzyć częstość występowania folderów (w porównaniu z plikami) 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 nowego wiersza `n oddziela ciągi w 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 AllStatsMeasure-Object pozwala zmierzyć wszystkie statystyki 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 użyć właściwości ScriptBlock w celu określenia rozmiaru w megabajtach wszystkich plików w katalogu.

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 skrótu. Poniższy przykład określa największą wartość klucza num 3 obiektów.

@{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 parametr -StandardDeviation. Poniższy przykład określa odchylenie standardowe dla procesora cpu używanego przez wszystkie procesy. Duże odchylenie wskazuje 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 maksymalny typ użycia pamięci stronicowanej między zestawem 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.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Average

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

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Character

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

Nuta

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

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-IgnoreWhiteSpace

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

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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.

W przypadku używania parametru InputObject z Measure-Objectzamiast potokowania wyników polecenia w celu Measure-Objectwartość 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.

Typ:PSObject
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Line

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

Nuta

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

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Maximum

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

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Minimum

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

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Property

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

Wartość parametru Property 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.

Typ:PSPropertyExpression[]
Position:0
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-StandardDeviation

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

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Sum

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

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Word

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

Nuta

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

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

PSObject

Do tego polecenia cmdlet można przekazać obiekty potokowe.

Dane wyjściowe

GenericMeasureInfo

Domyślnie to polecenie cmdlet zwraca obiekt GenericMeasureInfo.

TextMeasureInfo

Jeśli używasz parametru Word, to polecenie cmdlet zwraca obiekt TextMeasureInfo.

Uwagi

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

  • Wszystkie platformy:
    • measure

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