2014-11-07 04:12:42 +0000 2014-11-07 04:12:42 +0000
39
39

Как проверить размер папки из командной строки Windows?

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

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

Ответы (10)

35
35
35
2014-11-07 06:34:25 +0000

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

14
14
14
2016-12-07 17:10:59 +0000

Вы можете использовать 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"
7
7
7
2015-03-04 09:35:54 +0000

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

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

2
2
2
2016-01-13 08:21:30 +0000

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

@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
2
2
2016-02-15 12:14:54 +0000

Вы все еще можете использовать утилиту командной строки diruse.exe из Windows 2000 Resource Kit, доступную здесь: https://support.microsoft.com/en-us/kb/927229

Она работает на Windows 8.1 без каких-либо проблем.

1
1
1
2014-11-07 06:24:08 +0000

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

1
1
1
2019-03-07 22:38:22 +0000

Я понимаю, что этот вопрос был задан для анализа размера файла с помощью CMD line. Но если вы готовы использовать PowerQuery (Excel add-in, versions 2010+), то можете создать довольно убедительный анализ размера файла.

Скрипт, приведенный ниже, можно вставить в пустой запрос; единственное, что вам нужно будет сделать, это добавить параметр с именем “paramRootFolderSearch”, а затем добавить значение, например “C:\Users\bl0040\Dropbox\”. Я использовал это в качестве руководства: MSSQLTips: Получение размеров файлов из файловой системы с помощью Power Query .

Этот запрос предоставил мне данные для создания поворотной таблицы ([Folder Root]> [Folder Parent (1-2)], [Name]), и я смог определить несколько файлов, которые я мог удалить, что очистило много места в моем каталоге.

Это M-скрипт для PowerQuery :

let
// Parmameters:
    valueRootFolderSearch = paramRootFolderSearch,
    lenRootFolderSearch = Text.Length(paramRootFolderSearch),
//

    Source = Folder.Files(paramRootFolderSearch),
    #"Removed Other Columns" = Table.RenameColumns(
Table.SelectColumns(Source,{"Name", "Folder Path", "Attributes"})
,{{"Folder Path", "Folder Path Full"}}),
    #"Expanded Attributes" = Table.ExpandRecordColumn(#"Removed Other Columns", "Attributes", {"Content Type", "Kind", "Size"}, {"Content Type", "Kind", "Size"}),
    #"fx_Size(KB)" = Table.AddColumn(#"Expanded Attributes", "Size(KB)", each [Size]/1024),
    #"fx_Size(MB)" = Table.AddColumn(#"fx_Size(KB)", "Size(MB)", each [Size]/1048576),
    #"fx_Size(GB)" = Table.AddColumn(#"fx_Size(MB)", "Size(GB)", each [Size]/1073741824),
    fx_FolderRoot = Table.AddColumn(#"fx_Size(GB)", "Folder Root", each valueRootFolderSearch),
    helper_LenFolderPathFull = Table.AddColumn(fx_FolderRoot, "LenFolderPathFull", each Text.Length([Folder Path Full])),
    fx_FolderDepth = Table.AddColumn(helper_LenFolderPathFull, "Folder Depth", each Text.End([Folder Path Full], [LenFolderPathFull]-lenRootFolderSearch+1)),
    #"helperList_ListFoldersDepth-Top2" = Table.AddColumn(fx_FolderDepth, "tmp_ListFoldersDepth", each List.Skip(
  List.FirstN(
    List.RemoveNulls(
      Text.Split([Folder Depth],"\")
    )
  ,3)
,1)),
    #"ListFoldersDepth-Top2" = Table.TransformColumns(#"helperList_ListFoldersDepth-Top2", 
{"tmp_ListFoldersDepth", each "\" & Text.Combine(List.Transform(_, Text.From), "\") & "\"
, type text}),
    #"Select Needed Columns" = Table.SelectColumns(#"ListFoldersDepth-Top2",{"Name", "Folder Root", "Folder Depth", "tmp_ListFoldersDepth", "Content Type", "Kind", "Size", "Size(KB)", "Size(MB)", "Size(GB)"}),
    #"rename_FoldersParent(1-2)" = Table.RenameColumns(#"Select Needed Columns",{{"tmp_ListFoldersDepth", "Folders Parent (1-2)"}})
in
    #"rename_FoldersParent(1-2)"

Folder File Sizes_xlsx.png

Folder File Sizes_xlsx2.png

.

1
1
1
2019-12-07 07:30:53 +0000

Microsoft предлагает инструмент под названием Disk Usage, который создает CSV отчет.

Du (использование диска) сообщает об использовании дискового пространства для указанной вами директории. По умолчанию он записывает каталоги, чтобы показать общий размер каталога и его подкаталогов.

Вот как его использовать:

Использование: du [-c[t]]. [-l | -n | -v] [-u] [-q] Описание параметра

Где опции:

-c Print output as CSV. Use -ct for tab delimiting.
-l Specify subdirectory depth of information (default is all levels).
-n Do not recurse.
-v Show size (in KB) of intermediate directories.
-u Count each instance of a hardlinked file.
-q Quiet (no banner).

Выход CSV отформатирован как:

Путь, CurrentFileCount, CurrentFileSize, FileCount, DirectoryCount, DirectorySize

Где опции:

Где:

Выход CSV отформатирован как:

Путь, CurrentFileCount, CurrentFileSize, FileCount, DirectoryCount, DirectorySize

Вот текущая официальная ссылка .

0
0
0
2017-11-30 14:17:53 +0000

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

-2
-2
-2
2014-11-07 05:38:57 +0000

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

C:\>dir

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

Похожие вопросы

3
19
10
28
8