Я хотел бы видеть размеры подпапок в папке, похожей на du -shкоманду linux . Как я могу перечислить каталоги и их размеры в командной строке?
Я хотел бы видеть размеры подпапок в папке, похожей на du -shкоманду linux . Как я могу перечислить каталоги и их размеры в командной строке?
Ответы:
Попробуйте утилиту использования диска от Sysinternals. В частности, du -l 1должен отображаться размер каждого подкаталога текущего каталога. Для получения дополнительной информации, запустите duбез каких-либо параметров.
Если PowerShell в порядке, попробуйте следующее:
Get-ChildItem |
Where-Object { $_.PSIsContainer } |
ForEach-Object {
$_.Name + ": " + (
Get-ChildItem $_ -Recurse |
Measure-Object Length -Sum -ErrorAction SilentlyContinue
).Sum
}
Размеры указаны в байтах. Чтобы отформатировать их в какой-то более крупный блок, например, MB, попробуйте следующее (сжато до одной строки):
Get-ChildItem | Where-Object { $_.PSIsContainer } | ForEach-Object { $_.Name + ": " + "{0:N2}" -f ((Get-ChildItem $_ -Recurse | Measure-Object Length -Sum -ErrorAction SilentlyContinue).Sum / 1MB) + " MB" }
Для получения дополнительной информации см. Эту статью в Technet .
Если вы хотите более гибкое форматирование размеров (выбирая КБ / МБ / ГБ / и т. Д. В зависимости от фактического размера), посмотрите этот вопрос и ответы на него .
Я не думаю, что можно делать то, что вы хотите, из обычной командной строки и только с несколькими простыми командами. Посмотрите на этот скрипт в качестве примера (я не собираюсь копировать его здесь, потому что я не верю, что такой подход стоит использовать, если только PowerShell не доступен и сторонние утилиты не приемлемы).
У меня нет опыта работы с duLinux. Но в Windows я использую, dir /sчтобы перечислить все папки и подпапки вместе с размерами файлов.
/SПереключатель не показывает размеры каталогов, он просто делает команда рекурсивно пройти через все подкаталоги.