Если вы хотите выяснить, какие папки занимают место в вашем хранилище, вы можете проверить размер папки, чтобы определить, что занимает ваш диск. Проверка размера папки также полезна, если вам нужно переместить большую папку на USB-накопитель или облачное хранилище. Простой способ сделать это в Windows — воспользоваться проводником и открыть диалоговое окно Свойств папки.

Однако файловый проводник может медленно определять размер большой папки. И это не идеально, если вы хотите управлять файлами и папками на нескольких компьютерах в организации. Чтобы исправить это, вы можете использовать PowerShell для быстрого расчета размеров папок в Windows.

Как рассчитать размер папки с помощью PowerShell в Windows

командлет powershell для просмотра размера папки в байтах

Чтобы рассчитать размер папки, вам нужно будет использовать два командлета PowerShell, Get-ChildItem и Measure-Object , за которыми следуют свойство Length и параметр Sum .

Командлет Get-ChildItem позволяет извлекать информацию из указанного каталога и его подкаталогов. Командлет Measure-Object и связанные с ним свойства и параметры вычисляют сумму свойства length для элементов, возвращаемых командлетом Get-ChildItem (псевдоним ‘cgi’).

Если вы новичок в PowerShell, возможно, вам захочется прочитать наше пояснение к основным командлетам PowerShell, чтобы понять основы работы с PowerShell.

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

  1. Нажмите клавишу Win и введите powershell.
  2. Далее щелкните правой кнопкой мыши на Windows PowerShell и выберите Запуск от имени администратора. Нажмите Да , если появится запрос от User Account Control.
  3. В окне PowerShell введите следующую команду:
     Get-ChildItem FolderPath | Measure-Object -Property Length -sum
  4. В приведенной выше команде замените путь к папке на путь к каталогу, в котором сохранена ваша папка. Например, если вы хотите рассчитать размер папки загрузки, расположенной на диске E:\, то полная команда будет выглядеть следующим образом:
    Get-ChildItem E:\Download | Measure-Object -Property Length -sum
  5. Возвращаемый результат покажет количество элементов в папке и ее размер в байтах. Вам нужно разделить общую сумму на 1024, чтобы получить размер в КБ (килобайтах). Снова разделите его на 1024, чтобы получить размер в МБАХ (мегабайтах) и так далее.

В качестве альтернативы вы можете использовать свойство .sum для получения общего размера и разделить его на 1 миллион или миллиард, чтобы преобразовать в мегабайты или гигабайты.

командлет powershell для просмотра размера папки в мегабайтах, гигабайтах

Например, если вы хотите узнать значение в гигабайтах (МБ), введите следующую команду и нажмите Ввод:

(gci E:\Download | measure Length -s).sum / 1Mb

Аналогичным образом замените 1 МБ на 1 ГБ , чтобы получить размер папки в гигабайтах.

(gci E:\Download | measure Length -s).sum / 1Gb

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

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

командлет powershell для просмотра папок по типу файла
(gci E:\download *.jpg | measure Length -s).sum / 1Mb 

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

Как получить размер вложенной папки с помощью PowerShell

командлет powershell для просмотра размера вложенной папки

Приведенная выше команда рассчитает размер только вашего основного каталога или папки. Чтобы рассчитать общий размер файлов в указанном каталоге и его подкаталогах, вам нужно добавить параметр -Recurse к приведенной выше команде. Кроме того, мы будем использовать параметр -force для доступа к скрытым и системным файлам.

Например, чтобы получить общий размер вашего каталога C:\Users его подкаталоги, включая скрытые файлы, команда PowerShell будет выглядеть примерно так:

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

Выходные данные в этом экземпляре показывают приблизительно 54 ГБ как общий размер папки c:\users . В приведенной выше команде параметр -ErrorAction SilentlyContinue используется для подавления любых сообщений об ошибках, которые могут возникать во время процесса.

Как получить размер вложенной папки в табличном формате с помощью PowerShell

представление размера папки скрипта ISE для Windows powershell

Если вы хотите узнать размер всех вложенных папок по отдельности, вы можете запустить сценарий PowerShell, чтобы получить графическое представление всех вложенных папок и их размеров. Скрипт обычно полезен, если у вас большой каталог с несколькими вложенными папками и вам нужно часто с ними работать.

Для запуска этого скрипта вы можете использовать PowerShell ISE. Вот как это сделать:

  1. Нажмите клавишу Win и введите PowerShell ISE. Нажмите на Windows PowerShell ISE в результате поиска.
    powershell - это меню "Пуск"
  2. Далее скопируйте и вставьте следующую команду в консоль 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"
  3. Далее нажмите Запустить скрипт или 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 может помочь вам выполнить работу быстрее.

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