Jak za pomocą PowerShella sprawdzić objętość katalogu

Sprawdzenie rozmiaru katalogu pod Windows z użyciem Eksploratora plików to trywialne zadanie. Czasem trzeba to jednak zrobić za pośrednictwem sesji zdalnej PowerShella. Dobrze, aby wynik sprawdzenia został wyświetlony w łatwej do odczytania jednostce, a nie milionach bajtów.

Gdy do poniższego polecenia zostanie przekazana ścieżka do katalogu obliczony będzie jego rozmiar, a w przypadku samej ścieżki dysku: objętość zgromadzonych na nim danych. Niezależnie od przypadku wynik będzie podany w megabajtach.

"{0:N2}" -f ((Get-ChildItem -Path sciezka_do\dysku_lub_katalogu -Recurse | Measure-Object -Property length -Sum).Sum /1MB) + " MB"

Przy okazji warto wyjaśnić jego poszczególne składowe:

  • "{0:N2}" -f odpowiada za prezentację wyniku z dokładnością do dwóch miejsc po przecinku,
  • Get-ChildItem -Path sciezka_do\dysku_lub_katalogu -Recurse pobiera rekursywnie, czyli z podkatalogami, wszystkie elementy pod wskazaną ścieżką,
  • | przekaże wynik poprzedniego polecenia do następnego,
  • Measure-Object -Property length -Sum zsumuje wielkości elementów zwróconych przez Get-ChildItem,
  • .Sum /1MB) + " MB" zamieni wynik na megabajty i dopisze odpowiednią jednostkę na samym końcu.

Samo działanie polecenia przedstawia się następująco.

PS D:\> "{0:N2}" -f ((Get-ChildItem -Path D: -Recurse | Measure-Object -Property length -Sum).Sum /1MB) + " MB"
1 023 048,38 MB
PS D:\>