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
polecenia , aby obliczyć wartości minimum, maksimum, sumę, standarddeviation i średnią 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 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-Content
Raw zwraca plik jako tablicę wierszy.
Pierwsze polecenie używa Set-Content
polecenia 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ść
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 do Measure-Object
.
Obiekt System.Diagnostics.Process nie ma właściwości DisplayName i jest pominięty w końcowej liczbie.
$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 Import-Csv
pliku wynik jest obiektem PSCustomObject z właściwościami notatek EmpNo i Years.
Możesz użyć Measure-Object
polecenia , aby 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 Measure-Object
pokazano, jak można mierzyć wartości logiczne.
W tym przypadku używa właściwości logicznej PSIsContainer do mierzenia częstości 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 `n
nowego wiersza 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 Measure-Object
AllStats polecenia pozwala mierzyć 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 za pomocą właściwości ScriptBlock określić rozmiar 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 tabeli skrótów. Poniższy przykład określa największą wartość num
klucza 3 obiektów tabeli skrótó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 . W poniższym przykładzie określono odchylenie standardowe 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.
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.
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.
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 w Measure-Object
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.
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.
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.
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.
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 GenericMeasureInfo .
Gdy używasz parametru programu 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, nie zwraca już błędu podczas przetwarzania obiektu, Measure-Object
który nie ma mierzonej właściwości, chyba że jest uruchomiony w trybie StrictMode. W trybie StrictModeMeasure-Object
zwraca obiekt System.Management.Automation.PSArgumentException
podczas przetwarzania obiektu, który nie ma określonej właściwości.