Какие папки занимают ваш дисковод? Узнайте из этого руководства по Windows.
Если вы хотите выяснить, какие папки занимают место в вашем хранилище, вы можете проверить размер папки, чтобы определить, что занимает ваш диск. Проверка размера папки также полезна, если вам нужно переместить большую папку на USB-накопитель или облачное хранилище. Простой способ сделать это в Windows — воспользоваться проводником и открыть диалоговое окно Свойств папки.
Однако файловый проводник может медленно определять размер большой папки. И это не идеально, если вы хотите управлять файлами и папками на нескольких компьютерах в организации. Чтобы исправить это, вы можете использовать PowerShell для быстрого расчета размеров папок в Windows.
Как рассчитать размер папки с помощью PowerShell в Windows
Чтобы рассчитать размер папки, вам нужно будет использовать два командлета PowerShell, Get-ChildItem и Measure-Object , за которыми следуют свойство Length и параметр Sum .
Командлет Get-ChildItem позволяет извлекать информацию из указанного каталога и его подкаталогов. Командлет Measure-Object и связанные с ним свойства и параметры вычисляют сумму свойства length для элементов, возвращаемых командлетом Get-ChildItem (псевдоним ‘cgi’).
Если вы новичок в PowerShell, возможно, вам захочется прочитать наше пояснение к основным командлетам PowerShell, чтобы понять основы работы с PowerShell.
Теперь, когда вы знакомы с командами PowerShell, вот как их использовать для получения любого размера папки.
- Нажмите клавишу Win и введите powershell.
- Далее щелкните правой кнопкой мыши на Windows PowerShell и выберите Запуск от имени администратора. Нажмите Да , если появится запрос от User Account Control.
- В окне PowerShell введите следующую команду:
Get-ChildItem FolderPath | Measure-Object -Property Length -sum
- В приведенной выше команде замените путь к папке на путь к каталогу, в котором сохранена ваша папка. Например, если вы хотите рассчитать размер папки загрузки, расположенной на диске E:\, то полная команда будет выглядеть следующим образом:
Get-ChildItem E:\Download | Measure-Object -Property Length -sum
- Возвращаемый результат покажет количество элементов в папке и ее размер в байтах. Вам нужно разделить общую сумму на 1024, чтобы получить размер в КБ (килобайтах). Снова разделите его на 1024, чтобы получить размер в МБАХ (мегабайтах) и так далее.
В качестве альтернативы вы можете использовать свойство .sum для получения общего размера и разделить его на 1 миллион или миллиард, чтобы преобразовать в мегабайты или гигабайты.
Например, если вы хотите узнать значение в гигабайтах (МБ), введите следующую команду и нажмите Ввод:
(gci E:\Download | measure Length -s).sum / 1Mb
Аналогичным образом замените 1 МБ на 1 ГБ , чтобы получить размер папки в гигабайтах.
(gci E:\Download | measure Length -s).sum / 1Gb
Если вы хотите определить размер определенных типов файлов в каталоге, вы можете использовать подстановочный знак *, за которым следует тип расширения файла. Будет показан только размер файла для указанного типа файла.
Например, чтобы определить, сколько места занимают изображения в папке, используйте следующую команду:
(gci E:\download *.jpg | measure Length -s).sum / 1Mb
Добавление подстановочного знака позволяет определить, занимает ли определенный тип файла больше всего места в папке. Затем вы можете отфильтровать содержимое на основе расширения файла и при необходимости удалить или переместить его.
Как получить размер вложенной папки с помощью PowerShell
Приведенная выше команда рассчитает размер только вашего основного каталога или папки. Чтобы рассчитать общий размер файлов в указанном каталоге и его подкаталогах, вам нужно добавить параметр -Recurse к приведенной выше команде. Кроме того, мы будем использовать параметр -force для доступа к скрытым и системным файлам.
Например, чтобы получить общий размер вашего каталога C:\Users его подкаталоги, включая скрытые файлы, команда PowerShell будет выглядеть примерно так:
((gci -force c:\Users -Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb)
Выходные данные в этом экземпляре показывают приблизительно 54 ГБ как общий размер папки c:\users . В приведенной выше команде параметр -ErrorAction SilentlyContinue используется для подавления любых сообщений об ошибках, которые могут возникать во время процесса.
Как получить размер вложенной папки в табличном формате с помощью PowerShell
Если вы хотите узнать размер всех вложенных папок по отдельности, вы можете запустить сценарий PowerShell, чтобы получить графическое представление всех вложенных папок и их размеров. Скрипт обычно полезен, если у вас большой каталог с несколькими вложенными папками и вам нужно часто с ними работать.
Для запуска этого скрипта вы можете использовать PowerShell ISE. Вот как это сделать:
- Нажмите клавишу Win и введите PowerShell ISE. Нажмите на Windows PowerShell ISE в результате поиска.
- Далее скопируйте и вставьте следующую команду в консоль ISE PowerShell. Обязательно измените каталог с c: \ на предпочитаемый вами каталог.
$targetfolder = 'C:\' $dataColl = Get-ChildItem -Force $targetfolder -Directory -ErrorAction SilentlyContinue | ForEach-Object { $len = Get-ChildItem -Recurse -Force $_.FullName -File -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum | Select-Object -ExpandProperty Sum $foldername = $_.FullName $foldersize = '{0:N2} GB' -f ($len / 1Gb) [PSCustomObject]@{ foldername = $foldername foldersizeGb = $foldersize } } $dataColl | Out-GridView -Title "Size of Subdirectories in $targetfolder"
- Далее нажмите Запустить скрипт или F5 и дождитесь выполнения скрипта. В зависимости от размера папки вы увидите диалоговое окно «Размер подкаталогов«, в котором перечислены все подкаталоги с указанием их размера.
В дополнение к этому вы можете использовать операторы сравнения PowerShell для фильтрации результатов. Например, чтобы получить размер файла для папок, созданных в период с июня 2023 по июль 2023 года, вы можете использовать следующую команду:
(gci -force E:\Download –Recurse -ErrorAction SilentlyContinue | ? {$_.CreationTime -gt '01/23/23' -AND $_.CreationTime -lt '02/23/23'}| measure Length -s).sum / 1Gb
В приведенной выше команде, «?» является псевдонимом для командлета Where-Object, -gt, -И, -It являются операторами сравнения, а CreationTime является условием. Команда проверяет, попадает ли время создания файлов в подкаталоге в указанный диапазон дат, и выводит результат только в том случае, если выполняется условие. Если вы получаете сообщение об ошибке, убедитесь, что формат даты и времени в команде соответствует системному формату, и попробуйте еще раз.
Получить размер папки и вложенной папки с помощью PowerShell
Проводник в Windows может помочь вам рассчитать размер любой папки и файла. Однако, если вы работаете с несколькими большими папками или в организации с сотнями компьютеров для управления, использование PowerShell может помочь вам выполнить работу быстрее.
Тем не менее, если вы предпочитаете решение, основанное в большей степени на графическом интерфейсе, рассмотрите возможность использования инструмента анализа диска. Эти инструменты могут помочь вам визуализировать файловую структуру системы и показать отчет с подробным описанием содержимого, занимающего большую часть места в вашей системе.