Как посмотреть размер папки в windows через консоль

Обновлено: 04.07.2024

Спасибо всем! Получается!
Только я терь к другой немножко схеме подошёл , можно из этого кода выдрать токо то что считывает размер папки (с под папками) и выводит на экран?

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Посчитать размер папки
Есть код который по выбору показывает размер папки , но в нём какая то ошибка и он показывает.

Команда ROBOCOPY и размер папки
Как (если можно) в команде robocopy сделать чтобы вместо подробной инфы о всех файлах он показывал.

Как определить размер папки
Здравствуйте, формучане :) Пытаюсь определить размер папки скриптом php, но выходит довольно туго.

Определить размер папки на компьютере в байтах
Как можно проще всего програмно, например при нажатии на кноку определить размер папки ?

в заглавии как-бы описание.

Расширенный пример этой функции с выводом на экран разбивки на Кб и Мб есть здесь: Тонкости языка, редкие команды и сложные скрипты И терь осталось какбы он не говорил мне что "Echo Число слишком велико для обработки в CMD" сделать.

Озвучьте, пожалуйста, полностью задание.

Размер папки в байтах Вы получили - это переменная dirsize, начиная со строки № 8.
Остальное по сути лишнее.

Первый всё делает ,но он большущий , я думал если бы написать более мелкий но с той-же функцией!
Второй хоть и подсчитывает ,но если число превысит фиг знает какое значение , то он пишет мне ту фигню.
Вы умный и может сможете мне помочь?

Кхм.
Нет, не на столько, как бы хотелось )

Я так понял Вам нужно, чтобы ответ писало в МегаБайтах, но при этом математика не выдавала ошибок.

(*немного почесав голову*)

Так достаточно коротко: ?

О Господи ну наконец то! Спасибо огромное вам. , Всё решено! , мелкий вопросик (так просто):
Вот когда тыкаешь на свойства папки и видишь размер ,то он показывает
Размер: 8,00 ГБ (8 596 143 292 байт)
На диске: 8,00 ГБ (8 599 232 512 байт)
Чё он сначала говорит что размер 8 ГБ ,а тут же пишет 8,5 ГБ ? (и ваш код как раз размер который в скобках считает. )

Решение

Вам вроде как хотелось по-короче.
Ну если нужно и с сотыми, тогда так:

В смысле? Я просто пример привёл, почему 8 596 143 292 Байт это 8 Гб и всё. Да нееее! Всё норм , FraidZZ - уже дал ответ , меня щас интересует как сделать чтоб он исключал папки "backup" и "mod"

Значит: Сначала ставит что п=у (у в данном случае является путём в реестре к каталогу) ,потом показывает размер папки (%u%)
Вот во время этого подсчёта он должен исключать папки "mod" и "backup"

Добавлено через 7 минут
А можно ещё сделать чтобы он считал в другом формате как
тут расписано?

Добавил команды attrib. А также внимательно сравни мою 7ую строчку с 4ой твоей, а также 9ую с 6ой.

А можно ещё сделать чтобы он считал в другом формате как
тут расписано? Не знаю. , в общем тут так я вырезки из кода тогда приводил и по этому полностью код работает не корректно.

Когда в "главном меню" выбираю "установку" (errorlevel 2) , он мне на пол секунды показывает "переустановка атрибутов скрытого файла F:\b\dektop.ini не произведена" а потом показывает всё правильно. (строка 42-49) , но когда я в "главном меню" выбираю "инфо" (errorlevel 6) он мне это-же самое показывает (строка 42-49) , а мне надо чтобы при выборе "инфо" (errorlevel 6) он показывал (сторки 34-39)

Добавлено через 2 часа 9 минут
Да и ваще , тщательно по смотря я понял что он как-то не правильно показывает размер папки ,когда исключает те две.

date

16.08.2021

directory

PowerShell, Windows 10, Windows Server 2019

comments

комментариев 10

Большинство пользователей Windows привыкли, что самый простой способ получить размер папки – открыть ее свойства в Проводнике Windows. Более опытные предпочитают использовать такие утилиты, как TreeSize или WinDirStat. Но, если вам нужно получить более детальную статистику по размеру папок в конкретном каталоге, или исключить определенные типы файлы, в этом случае лучше воспользоваться возможностями PowerShell. В этой статье мы покажем, как быстро получить размер определенного каталога на диске (или всех вложенных каталогов) с помощью PowerShell.

Для получения размеров файлов и каталогов в PowerShell можно воспользоваться командами Get-ChildItem (алиас gci) и Measure-Object (алиас measure). Первый командлет позволяет сформировать список файлов в заданном каталоге по указанным критериями, а второй выполняет арифметическое действие.

Совет. В одной из прошлых статей мы показывали как использовать командлет Get-ChildItem, чтобы найти ТОП самых больших файлов на диске.

Например, чтобы получить размер папки c:\PS, выполните команду:

Get-ChildItem c:\iso | Measure-Object -Property Length -sum

как узнать размер каталога с помощью PowerShell

Как вы видите, общий размер файлов в данном каталоге указан в поле Sum и составляет около 2 Гб (размер указан в байтах).
Чтобы преобразовать размер в более удобные Мб или Гб, используйте такую команду:

(gci c:\iso | measure Length -s).sum / 1Gb

(gci c:\iso | measure Length -s).sum / 1Mb

Для округлений результата до двух символов после запятой, выполните команду:

" GB" -f ((gci c:\iso | measure Length -s).sum / 1Gb)

получить размер фалой в каталоге

С помощью PowerShell вы можете посчитать суммарный размер всех файлов определенного типа в каталоге. К примеру, мы хотим получить суммарный размер всех ISO файлов в папке:

(gci c:\iso *.iso | measure Length -s).sum / 1Mb

посчитать размер всех iso файлов на диске

Рассмотренные выше команды PowerShell позволяют получить общий размер файлов только в указанной директории. Если в папке содержаться вложенные каталоги, то размер файлов в этих каталогах не учитывается. Для получения общего размера всех файлов в каталоге с учетом вложенных директорий нужно использовать параметр –Recurse. Получим суммарный размер всех файлов в папке C:\Windows (скрипт возвращает суммарный размер всех файлов без учета NTFS сжатия):

" GB" -f ((gci –force c:\Windows –Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb)

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

Итак, размер каталога C:\Windows на нашем диске составляет около 40 Гб.

Совет. Чтобы не показывать ошибки доступа к каталогам используйте параметр -ErrorAction SilentlyContinue .

узнать размер папки windows с помощью powershell

Данный скрипт некорректно считает размер каталога, если в нем есть символические или жесткие ссылки. Например, в каталоге C:\Windows находится много жестких ссылок на файлы в хранилище компонентов WinSxS. В результате такие файлы могут быть посчитаны несколько раз. Чтобы не учитывать в результатах жесткие ссылки, используйте следующую команду (выполняется довольно долго):

" GB" -f ((gci –force C:\windows –Recurse -ErrorAction SilentlyContinue | Where-Object < $_.LinkType -notmatch "HardLink" >| measure Length -s).sum / 1Gb)

размер каталога windows без учетка жестких ссылок в winsxs

Как вы видите, реальный размер папки Windows несколько меньше.

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

(gci -force c:\ps –Recurse -ErrorAction SilentlyContinue | ? | measure Length -s).sum / 1Gb

Можно получить размер всех вложенных папок первого уровня в указанном каталоге. Например, нам нужно получить размер всех профилей пользователей в папке C:\Users.

gci -force 'C:\Users'-ErrorAction SilentlyContinue | ? < $_ -is [io.directoryinfo] >| % $len = 0
gci -recurse -force $_.fullname -ErrorAction SilentlyContinue | % < $len += $_.length >
$_.fullname, ' GB' -f ($len / 1Gb)
>

подсчитать размер профилей пользователей

% — это алиас для цикла foreach-object.

Идем дальше. Допустим ваша задача – узнать размер каждого каталога в корне системного жесткого диска и представить информацию в удобной для анализа табличной форме с возможностью сортировки по размеру каталогов.

Для получения информации о размере каталогов на диске C:\ выполните следующий PowerShell скрипт:

$targetfolder='C:\'
$dataColl = @()
gci -force $targetfolder -ErrorAction SilentlyContinue | ? < $_ -is [io.directoryinfo] >| % $len = 0
gci -recurse -force $_.fullname -ErrorAction SilentlyContinue | % < $len += $_.length >
$foldername = $_.fullname
$foldersize= '' -f ($len / 1Gb)
$dataObject = New-Object PSObject
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldername” -value $foldername
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldersizeGb” -value $foldersize
$dataColl += $dataObject
>
$dataColl | Out-GridView -Title “Размер вложенных каталогов”

получить размер всех папок в корне диска C: с помощью powershell

Перед вами должна появиться графическая форма с таблицей, в которой указаны все папки в корне системного диска C:\ и их размер (таблица формируется командлетом Out-GridView). Щелкнув по заголовку столбца таблицы, вы можете отсортировать папки по размеру. Также вы можете выгрузить результаты в CSV ( |Export-Csv file.csv ) или Excel файл.

Если вы часто используете проверку размера каталогов в своих скриптах PowerShell, можно сделать отдельную функцию:

function Get-FolderSize [CmdletBinding()]
Param (
[Parameter(Mandatory=$true,ValueFromPipeline=$true)]
$Path
)
if ( (Test-Path $Path) -and (Get-Item $Path).PSIsContainer ) $Measure = Get-ChildItem $Path -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum
$Sum = '' -f ($Measure.Sum / 1Gb)
[PSCustomObject]@"Path" = $Path
"Size($Gb)" = $Sum
>
>
>

Для вызова функции просто выполните команду:

функция powershell Get-FolderSize

Такую функцию можно использовать для проверки размера каталогов на удаленных компьютерах через командлет Invoke-Command (PowerShell Remoting).

Как узнать размер папки через командную строку? / How check size folder in command prompt?

Узнать размер папки в Microsoft Windows достаточно просто через графический интерфейс.

Для этого, достаточно выделить интересующую папку левой кнопкой мыши, далее нажать правой кнопкой мыши и выбрать пункт Свойства


В окне Свойства указан размер Папки.

Узнать размер папки через командную строку немного сложнее.

Для этого, необходимо создать . cmd файл с содержимым:

@echo off

setlocal enableextensions disabledelayedexpansion

echo % size %

Learn the size of the folder in Microsoft Windows is quite simple through the graphical interface. To do this, it is enough to select the folder of interest with the left mouse button, then right mouse button click and click Properties



The Folder size is specified in the Properties.

Finding out the size of a folder via the command line is a bit more complicated.

To do this, you must create .cmd file with content:

rem @echo off

setlocal enableextensions disabledelayedexpansion

echo %size%

Простейший способ получить размер файла из командной строки Windows:

из хелпа по команде For в Cmd:

Аналогично для даты (модификации) файла:

из хелпа по команде For в Cmd:

А вообще команда for /? очень полезная.

Как узнать размер и дату файла из командной строки : 12 комментариев

Добрый день
На команду:
for %i in (1.txt) do echo %

Windows XP3 сообщает:

ti was unexpected at this time.

Подскажите пожалуйста, что в команде указанно не верно.

@ Саша:
вы исполняете эту команду из пакетного файла?

Не из пакетного файла это вообще не будет работать.
А в пакетном файле к переменным внутри FOR добавляется еще один %

for %%i in (1.txt) do echo %%

Совершенно верно. В статье речь только о командной строке.

это дата изменения файла, а не создания…

Добрый день!
Помогите, пожалуйста.
Задача такая, нужно выбрать из каталога файлы *.log с сегодняшней датой и пробежаться по ним командой find….

А не подскажете решение для такой задачки? Нужно сравнить два файла и заменить более старый более новым (проще говоря, выполнить обновление). Проблема в том, что сравнение дат как строк дает неверный результат для случая, скажем: «06.10.2011» будет меньше «07.09.2011» (6 октября меньше 7 сентября).

@ Гость:
Т.к. универсальный метод работы с датами из командной строки Windows сделать довольно-таки проблематично из-за различных региональных настроек, я бы сделал так: скопировал оба файла под разными именами (естественно) в одну папку, отсортировал по дате, удалил самый старый, оставшийся перенес куда надо под нужным именем. Это всё алгоритм, естественно, для выполнения из cmd/bat файла.
Чуть позже будет статья как удалять самые старые файлы, что-то подобной этой статье, но под Windows

Как узнать размер папок в Windows и сделать экспорт этой информации в txt ?

Может понадобится, если Вы захотите проверить, что на диске больше всего занимает места. Узнать размер папок в Windows можна с помощью скрипта на cmd.

Предлагаю ознакомиться с предложениями моих партнёров

В данном примере, в файл D: empautoskinfo.txt будет записана информация о размере директории E:vektor6.local, и всех вложеных в неё папок и подпапок

Если Вам не нужна подробная информация о размере вложеных поддиректориях, надо закоменировать строку

Будет выведена информация о размере указаной директории и размеры вложеных в неё папок

Ну а если вам надо записать в файл размер только одной указаной в начале директории, то закомментируйте ещё и эту строку

Возможно ли в Windows получить размер папки из командной строки без использования какого-либо стороннего инструмента?

Я хочу получить тот же результат, что и при щелчке правой кнопкой мыши по папке в проводнике Windows. Свойства.

Вы можете просто добавить размеры рекурсивно (следующий пакетный файл):

Однако у этого есть несколько проблем, потому что cmd ограничено 32-разрядной целочисленной арифметикой со знаком. Таким образом, он будет иметь размеры выше 2 ГБ неправильно 1 . Кроме того, он, вероятно, будет считать символьные ссылки и переходы несколько раз, поэтому в лучшем случае верхняя граница, а не истинный размер (вы будете иметь эту проблему с любым инструментом).

Альтернативой является PowerShell:

Если вы хотите это красивее:

Вы можете использовать это непосредственно из cmd :

1 У меня есть частично обработанная библиотека bignum в пакетных файлах где-то, которая, по крайней мере, имеет право на произвольное количество целых чисел. Я действительно должен отпустить его, я думаю: -)

Для этого есть встроенный инструмент Windows:

Это напечатает много ненужной информации, но в конце будет размер папки, подобный этому:

Если вам нужно включить скрытые папки, добавьте /a .

Пока вы на нем, взгляните на другие утилиты. Они являются жизненно важной для каждого Windows Professional

То же, что и Powershell:

Это должно привести к следующему результату:

Если у вас есть git, установленный на вашем компьютере (становится все более распространенным), просто откройте MINGW32 и введите: du folder

Просто введите в командной оболочке

и получить список папок, упорядоченных по размеру

Этот пример был выполнен в 272ms на HDD.

Вы можете увеличить глубину вложенных папок для анализа, например:

и получить размеры не только для выбранных папок, но и для его подпапок

* 3.5Tb на сервере было проверено на 3m12s

Вот код PowerShell, который я записываю для размера списка и количества файлов для всех папок в текущем каталоге. Не стесняйтесь повторно использовать или модифицировать в соответствии с вашими потребностями.

Этот код проверен. Вы можете проверить его еще раз.

Я предполагаю, что это будет работать, только если каталог довольно статичен, и его содержимое не изменяется между выполнением двух команд dir. Возможно, это способ объединить это в одну команду, чтобы избежать этого, но это сработало для моей цели (я не хотел, чтобы полный список, просто сводка).

Я думаю, что ваш единственный вариант будет diruse (очень поддерживаемое стороннее решение):

Windows CLI, к сожалению, довольно ограничительный, вы можете альтернативно установить Cygwin, который является мечтой использовать по сравнению с cmd. Это даст вам доступ к портированному инструменту Unix du, который лежит в основе diruse на окнах.

Извините, что я не смог ответить на ваши вопросы напрямую командой, которую вы можете запустить на родном кли.

Я получил du.exe с моим дистрибутивом git. Другим местом может быть вышеупомянутое Microsoft или Unxutils.

Как только вы получите файл du.exe на своем пути. Здесь ваш fileSizes.bat : -)

:: Получить несколько строк, возвращаемых командами Dir (/-c, чтобы устранить разделители чисел. ) [ "Токены = 3" смотреть только на третий столбец каждой строки в Dir]

FOR /F "tokens=3" %%a IN ('dir /-c "%folderpath%"') DO set /a i=!i!+1

Номер предпоследней строки, где указано количество байтов суммы файлов:

Наконец, получим количество байтов в предпоследней строке - третий столбец:

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

Ограничения:

  • Работает только с папками размером менее 2 ГБ (cmd не обрабатывает числа более 32 бит).
  • Не читает количество байтов внутренних папок.

Измените C:\Program Files на любую нужную папку и измените значение% A на %% A, если оно используется в пакетном файле

Он возвращает размер всей папки, включая подпапки и скрытые и системные файлы, и работает с папками более 2 ГБ

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

Следующий скрипт может быть использован для получения и накопления размера каждого файла в данной папке.
Путь к папке %folder% можно указать в качестве аргумента этого сценария ( %1 ).
В конечном итоге результаты сохраняются в параметре %filesize%

Примечание: метод calcAccSize также может распечатывать содержимое папки (прокомментировано в примере выше)

Итак, вот решение для ваших запросов так, как вы изначально просили. Это обеспечит читабельность файлов без ограничений по размеру файлов, с которыми сталкивается каждый. Совместим с Win Vista или новее. XP доступна только если установлена Robocopy. Просто поместите папку в этот пакетный файл или используйте лучший метод, указанный ниже.

Чтобы найти папку SendTo на вашем компьютере, проще всего открыть cmd и скопировать в эту строку как есть.

Я решил аналогичную проблему. Некоторые из методов на этой странице медленны, а некоторые из них проблематичны в многоязычной среде (все предполагают английский). Я нашел простой обходной путь, используя vbscript в cmd. Он протестирован в W2012R2 и W7.

Он задает переменную среды S_. Вы можете, конечно, изменить последнюю строку, чтобы непосредственно отображать результат, например,

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

Самый простой способ получить только общий размер - это powershell, но все же ограничен тем, что имена путей длиной более 260 символов не включены в общий

Читайте также: