29

Я хочу использовать командную строку Windows, чтобы вычислить размер всех файлов в папке и подпапке. Обычно я делаю это, щелкая правой кнопкой мыши по папке и выбирая "Свойства", но я хочу сделать это в командной строке.

Какую команду я могу использовать?

8 ответов8

27

Вы захотите использовать dir /a/s чтобы он включал каждый файл, включая системные и скрытые файлы. Это даст вам общий размер, который вы хотите.

8

Вы можете использовать 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"
5

Нет такой команды, встроенной в командную строку DOS или Windows. В Linux есть команда du (D isk U sage).

Линейка инструментов Microsoft Sysinternals имеет инструмент, который примерно эквивалентен du в Linux. Это также называется du . ;)

2

Размер папки можно рассчитать с помощью следующего пакетного сценария:

@echo off
setlocal enabledelayedexpansion

set size=0
for /f "tokens=*" %%x in ('dir /s /a /b %1') do set /a size+=%%~zx
echo.!size!

endlocal
2

Вы все еще можете использовать утилиту командной строки diruse.exe из набора ресурсов Windows 2000, доступного здесь:

https://support.microsoft.com/en-us/kb/927229

Работает на Windows 8.1 без проблем.

1

Просто откройте power shell и выполните du -sh <directory> без необходимости устанавливать сторонние или sys-internals. В Power-shell вы можете запускать некоторые простые Linux-подобные команды, такие как команды ls или du, некоторые из переключателей не будут работать, как ls -alt будет ошибка, поскольку powershell не знает, что такое -alt ...

1

dir /s Перечислит размеры всех файлов и файлов во всех подпапках

0

Команда "dir" предоставляет размер файла, дату последнего изменения и время текущего каталога. Сначала попробуйте перейти в каталог, размер которого вы хотите использовать, используя команду cd , затем используйте команду dir .

C:\>dir 

Перечисляет размер файла, дату и время последнего изменения всех файлов и каталогов в каталоге, в котором вы находитесь в данный момент, в алфавитном порядке.

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