Вы можете использовать PowerShell!
$totalsize = [long]0
Get-ChildItem -File -Recurse -Force -ErrorAction SilentlyContinue | % {$totalsize += $_.Length}
$totalsize
Это повторяется по всему текущему каталогу (игнорируя каталоги, которые нельзя ввести) и суммирует размеры каждого файла. Затем он печатает общий размер в байтах.
Уплотненный однострочный:
$totalsize=[long]0;gci -File -r -fo -ea Silent|%{$totalsize+=$_.Length};$totalsize
На моей машине это выглядит немного быстрее, чем dir /s /a
, поскольку он не выводит информацию о каждом объекте на экран.
Чтобы запустить его из обычной командной строки:
powershell -command "$totalsize=[long]0;gci -File -r -fo -ea Silent|%{$totalsize+=$_.Length};$totalsize"