Я хотів би бачити розміри підпапок у папці, подібні до du -shкоманди Linux . Як я можу перерахувати каталоги та їх розміри в командному рядку?
Я хотів би бачити розміри підпапок у папці, подібні до du -shкоманди Linux . Як я можу перерахувати каталоги та їх розміри в командному рядку?
Відповіді:
Спробуйте утиліту Disk Usage від 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 .
Якщо ви хочете більш гнучкого форматування розмірів (вибираючи kB / MB / GB / тощо на основі фактичного розміру), перегляньте це питання та його відповіді .
Я не думаю, що можна робити те, що ти хочеш, із звичайного командного рядка і лише за допомогою декількох простих команд. Розгляньте цей скрипт як приклад (не збираюся копіювати його сюди, тому що я не вважаю, що цього підходу варто дотримуватися, якщо тільки PowerShell не доступний і сторонні утиліти не прийнятні).
Я не маю досвіду роботи duв Linux. Але у Windows я використовую dir /sдля переліку всіх папок і підпапок разом із розмірами файлів.
/SПеремикач не вказує розміри каталогів, він просто робить команда рекурсивно пройти через всі підкаталоги.