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
$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-Object
zamiast potokowania wyników polecenia w celu 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.
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
Do tego polecenia cmdlet można przekazać obiekty potokowe.
Dane wyjściowe
Domyślnie to polecenie cmdlet zwraca obiekt
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.