Jak mogę znaleźć rozmiar folderu za pomocą programu Powershell?

23

Chcę móc zobaczyć, jak duży jest folder (cała zawartość, w tym podfoldery i ich zawartość). Nie mogę znaleźć polecenia PowerShell, aby to zrobić, ale nie chcę otwierać Eksploratora Windows za każdym razem, gdy chcę znać rozmiar. Czy istnieje prosty sposób na osiągnięcie tego z poziomu Powershell?

Jacob Smart
źródło

Odpowiedzi:

29

Jestem prawie pewien, że dostałem to z poradnika Powershell dnia; nie pamiętam na pewno, ale używałem go od dawna i było to bardzo przydatne.

"{0:N2}" -f ((Get-ChildItem -path C:\InsertPathHere -recurse | Measure-Object -property length -sum ).sum /1MB) + " MB"

Edycja: Aby ułatwić korzystanie (abyś nie musiał pamiętać i wpisywać tego wszystkiego za każdym razem), możesz dodać go do swojego profilu jako funkcję, np .:

function Get-Size
{
 param([string]$pth)
 "{0:n2}" -f ((gci -path $pth -recurse | measure-object -property length -sum).sum /1mb) + " mb"
}

A następnie użyj go jak dowolnego polecenia:

Get-size C:\users\administrator
Darian Everett
źródło
1
Jestem ciekawy, jak dodać to do profilu PowerShell? Masz na myśli pozyskiwanie kropek ? (uwaga: kod można sformatować, dodając 4 puste spacje na początku)
nixda,
2
Możesz . źródło profilu, jeśli dokonałeś zmian i nie chcesz ponownie uruchamiać sesji PS, ale ładuje się automatycznie przy każdym uruchomieniu programu PowerShell, więc generalnie nie zrobiłbyś tego. Aby utworzyć swój profil po raz pierwszy, wykonaj następujące czynności: ni $ profile -type f -fo Następnie możesz otworzyć i edytować swój profil. Aby znaleźć lokalizację, po prostu wpisz $ profile do powłoki, a ścieżka zostanie wyświetlona. Wtedy każda dodana funkcja, taka jak powyższa, jest dostępna tak, jakby była wbudowana. Dziękujemy również za wskazówkę dotyczącą formatowania kodu
Darian Everett,
1
+1 Whoa nie znał tej sztuczki. Fascynujące :)
nixda,
1
Co ma {0:N2}zrobić?
soandos
1
Formatowanie Zero to symbol zastępczy, N2 oznacza, że ​​jest liczbą z dwoma miejscami dziesiętnymi.
Darian Everett,
9

Jest na stronie Microsoft Technet tutaj

wkład:

Get-ChildItem C:\Scripts -recurse | Measure-Object -property length -sum

wydajność:

Count    : 58
Average  :
Sum      : 1244611
Maximum  :
Minimum  :
Property : length
50–3
źródło
1
Często może to być dość odległe, ponieważ trzeba rekurencyjnie sprawdzać, czy folder ma podfoldery. Co to za pomiar, bity?
Austin T francuski
Popraw to bity - zapomniałem również o włączeniu przełącznika rekurencyjnego, w którym nie edytowałem - zauważ także, że głównie publikowałem artykuł w witrynie Technet na temat wyszukiwania przeprowadzonego za pośrednictwem Google (rozmiar folderu PowerShell), aby OP mógł w pełni zrozumieć polecenia użyte nie tylko odpowiedź
50-3
Dzięki za aktualizacje, teraz lepiej pasuje, myślę o formacie pytań i odpowiedzi.
Austin T French