13

Я хотел бы видеть размеры подпапок в папке, похожей на команду linux du -sh . Как я могу перечислить каталоги и их размеры в командной строке?

2 ответа2

16

Попробуйте утилиту использования диска от 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 не доступен и сторонние утилиты не приемлемы).

0

У меня нет опыта работы с du в Linux. Но в Windows я использую dir /s чтобы вывести список всех папок и подпапок вместе с размерами файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .