Measure-Object

Oblicza liczbę, sumę, średnią, min/max właściwości obiektów.

Measure-Object to powershellowy odpowiednik kalkulatora wbudowanego w potok. Bierze obiekty, które do niego dosypiesz, i liczy podstawowe statystyki: ile ich jest, jaka jest suma, średnia, wartość minimalna i maksymalna wybranej właściwości. Potrafi też pracować na tekście i policzyć linie, słowa oraz znaki, czyli zachowuje się trochę jak windowsowy wc z Linuksa. Najczęściej trafia na koniec potoku, gdy masz listę plików, procesów albo wpisów z CSV i chcesz szybko coś z nich podsumować, bez wyciągania Excela.

Składnia i najważniejsze opcje

Podstawowy wzorzec wygląda tak: | Measure-Object [-Property ] [-Sum] [-Average] [-Maximum] [-Minimum]

  • -Property — wskazuje, którą właściwość obiektu mierzyć (np. Length, CPU). Bez niej dostajesz tylko zliczenie obiektów.
  • -Sum — pokazuje sumę wartości danej właściwości.
  • -Average — liczy średnią arytmetyczną.
  • -Maximum — zwraca wartość największą.
  • -Minimum — zwraca wartość najmniejszą.
  • -StandardDeviation — odchylenie standardowe (dostępne od PowerShell 6).
  • -AllStats — zwraca wszystkie statystyki naraz: sumę, średnią, min, max i odchylenie (PowerShell 6+).
  • -Line, -Word, -Character — tryb tekstowy: liczy linie, słowa i znaki zamiast wartości liczbowych.

Przykłady użycia

  • Get-ChildItem C:\Logs | Measure-Object — zlicza, ile plików i folderów jest w katalogu (sama liczba obiektów, bez sumowania).
  • Get-ChildItem C:\Logs -File | Measure-Object -Property Length -Sum — sumuje rozmiar wszystkich plików; wynik dostajesz w bajtach w polu Sum.
  • Get-Process | Measure-Object -Property WorkingSet -Average -Maximum -Minimum — pokazuje średnie, maksymalne i minimalne zużycie pamięci przez procesy.
  • Get-Content plik.txt | Measure-Object -Line -Word -Character — liczy linie, słowa i znaki w pliku tekstowym, czyli odpowiednik wc.
  • Import-Csv sprzedaz.csv | Measure-Object -Property Kwota -AllStats — jednym strzałem wyciąga komplet statystyk dla kolumny z CSV.

Częste błędy i pułapki

Najpopularniejszy zgrzyt: Measure-Object bez -Sum czy -Average nie zsumuje ci niczego sam z siebie — domyślnie zwraca tylko Count. Druga pułapka to wynik: cmdlet oddaje obiekt z polami Count, Sum itd., a nie gołą liczbę. Jeśli chcesz samą wartość, sięgnij po nią wprost, np. (Get-Process | Measure-Object).Count. Pamiętaj też, że -Property musi wskazywać właściwość liczbową — przy tekstowej dostaniesz błąd albo zera. I nie myl dwóch trybów: -Sum i -Word należą do osobnych grup parametrów, więc nie połączysz ich w jednym wywołaniu. Na koniec drobiazg historyczny: -AllStats i -StandardDeviation działają dopiero od PowerShell 6, więc na starym Windows PowerShell 5.1 ich nie uświadczysz.

Powiązane komendy: Group-Object, Sort-Object, Select-Object, Where-Object.