Udostępnij za pomocą


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

GenericMeasure (Domyślna)

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

TextMeasure

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.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

GenericMeasure
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Average

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

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

GenericMeasure
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Character

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

Uwaga / Notatka

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

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

TextMeasure
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-IgnoreWhiteSpace

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

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

TextMeasure
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów: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-Object, 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.

Właściwości parametru

Typ:PSObject
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:True
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Line

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

Uwaga / Notatka

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

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

TextMeasure
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Maximum

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

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

GenericMeasure
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Minimum

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

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

GenericMeasure
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów: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, odnieś się do about_Calculated_Properties.

Właściwości parametru

Typ:

PSPropertyExpression[]

Domyślna wartość:None
Obsługuje symbole wieloznaczne:True
DontShow:False

Zestawy parametrów

(All)
Position:0
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-StandardDeviation

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

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

GenericMeasure
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Sum

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

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

GenericMeasure
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Word

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

Uwaga / Notatka

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

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

TextMeasure
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Dane wejściowe

PSObject

Do tego polecenia cmdlet można przekazywać obiekty.

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 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.