Как узнать размер папки с помощью Powershell?

23

Я хочу видеть размер папок (все содержимое, включая подпапки и их содержимое). Я не могу найти команду powershell, чтобы сделать это, но мне не нужно открывать проводник Windows каждый раз, когда я хочу узнать размер. Есть ли простой способ сделать это изнутри Powershell?

Джейкоб Смарт
источник

Ответы:

29

Уверен, что я получил это от чаевых дня Powershell; не могу вспомнить точно, но я использовал это долгое время, и это было очень полезно.

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

Редактировать: чтобы упростить использование (чтобы вам не приходилось каждый раз запоминать и печатать все это), вы можете добавить его в свой профиль как функцию, например так:

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

А затем используйте его как любую команду:

Get-size C:\users\administrator
Дариан Эверетт
источник
1
Мне интересно, как мне добавить это в профиль PowerShell? Вы имеете в виду точечный источник ? (примечание: код может быть отформатирован путем добавления 4 пробелов в начале)
nixda
2
Вы можете . создайте свой профиль, если вы внесли изменения и не хотите перезапускать сеанс PS, но он загружается автоматически каждый раз, когда вы запускаете Powershell, поэтому обычно вы этого не делаете. Чтобы создать свой профиль в первый раз, выполните следующие действия: ni $ profile -type f -fo Затем вы можете открыть и отредактировать свой профиль. Чтобы найти, где он находится, просто введите $ profile в оболочку, и путь будет отображен. Тогда любая добавляемая вами функция, например, описанная выше, доступна, как встроенная. Спасибо за подсказку по форматированию кода
Дариан Эверетт
1
+1 Вау не знал этого трюка. Увлекательный :)
nixda
1
что делает {0:N2}?
Soandos
1
Форматирование. Ноль - это заполнитель, N2 означает, что это число с двумя десятичными знаками.
Дариан Эверетт
9

Это на сайте Microsoft Technet здесь

вход:

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

выход:

Count    : 58
Average  :
Sum      : 1244611
Maximum  :
Minimum  :
Property : length
50-3
источник
1
Это часто может быть довольно далеко, так как вам нужно рекурсивно проверить, есть ли в папке подпапки. Кроме того, что это за измерение, биты?
Остин Т Френч
Исправьте его биты - также забыл включить переключатель recurse, в котором я не редактировал - также обратите внимание, что я в основном публиковал статью о техническом выполнении этих поисков, найденных через google (размер папки powershell), чтобы OP мог получить полное представление о команды использовали не просто ответ
50-3
Спасибо за обновления, теперь я думаю, что лучше подходит для формата вопросов и ответов.
Остин Т Френч