Как получить размер папки с помощью PowerShell
Проверить размер элемента или папки довольно просто на всех компьютерах с Windows. Просто щелкните правой кнопкой мыши каталог/элемент, выберите «Свойства», и перед вами появится размер. Правильный?
Не всем так повезло, как вам. Если размер элемента значительно больше, скажем, больше 100 ГБ, может потребоваться некоторое время для Характеристики окно, чтобы окончательно заполнить размер элемента. Наверняка должен быть более быстрый способ проверить размер папки.
Вам может понадобиться размер папки, чтобы вы могли оценить время, необходимое для ее перемещения или освобождения места на жестком диске. По какой-либо причине вы можете мгновенно получить размер папки/каталога с помощью Windows PowerShell.
В этой статье показаны различные командлеты и способы использования их переключателей для почти мгновенного определения размера папки на вашем ПК с помощью PowerShell.
У нас есть отдельное руководство о том, как получить размеры папок с помощью Проводника и сторонних приложений.
Команды для получения размера папки в PowerShell
В PowerShell есть две основные команды, которые можно использовать для получения размера папки. Эти команды можно использовать вместе с переключателями и параметрами для дальнейшей фильтрации результатов.
Команда: Get-ChildItem
Псевдоним: gci
Псевдоним — это альтернативное имя, которое вы можете использовать для команды, поэтому вам не придется каждый раз вводить всю команду.
Подробности: Эта команда получает информацию из одного или указанных каталогов, включая подкаталоги. Однако он не отображает пустые каталоги.
Команда: Объект измерения
Псевдоним: мера
Подробности: Эта команда используется для вычисления различных свойств указанного каталога, включая его размер.
Это два основных командлета, которые мы будем использовать сегодня, чтобы получить размер папки с помощью PowerShell.
Получить размер папки с помощью PowerShell
Ниже приведены несколько команд, которые вы можете использовать, чтобы получить размер папки на вашем ПК с Windows. Обратите внимание, что в этом разделе перечислены только командлеты, которые дадут вам размер указанной папки и только элементов внутри, а результаты не будут включать размер элементов внутри подкаталогов.
Если вы хотите также получить размер элементов внутри подкаталогов, обратитесь к следующему разделу ниже.
Давайте теперь продолжим пример проверки размера папки «D:\iTechtics\ISOs», которая есть на нашем ПК. Обратите внимание, что вы должны заменить (путь к папке) с полным путем к папке/каталогу, для которого вы хотите получить размер.
Запустите следующую команду, чтобы получить размер папки в байтах:
Get-ChildItem (PathToFolder) | Измерение-Объект-Свойство Длина-сумма
Получить размер папки с помощью PowerShell в байтах
В поле «Сумма» отобразится размер папки в байтах, как на изображении выше. Приблизительный размер элементов внутри папки «ISO» составляет 83 ГБ.
Примечание: Размер в байтах нужно разделить на 1024, чтобы получить размер в килобайтах, затем еще на 1024 для мегабайт, а затем еще на 1024 для гигабайт. Однако вам не нужно выполнять этот расчет, поскольку вы можете получить ответ непосредственно в мегабайтах или гигабайтах (обсуждается ниже).
Чтобы получить размер папки в МБ или ГБ, используйте соответствующую команду ниже:
Как вы можете видеть на изображениях выше, размер в МБ и ГБ неоднозначен для понимания с первого взгляда из-за того, что размер указан во многих десятичных знаках. Вы можете округлить результат команды, используя следующий командлет, заменив «Икс” с количеством знаков после запятой, до которого вы хотите округлить свой ответ.
Примечание: При необходимости замените «GB» и «MB».
“{0:NX} ГБ” -f ((gci (PathToFolder) | длина измерения -s).sum / 1 ГБ)
Получите размер папки, округленный до десятичного числа, с помощью PowerShell
Кроме того, вы также можете получить размер всех элементов внутри папки, имеющей тот же тип/расширение файла. Для этой цели можно использовать этот синтаксис команды, где будет отображаться размер файла всех элементов с расширением «.ISO»:
(gci (PathToFolder) *.iso | длина измерения -s).sum / 1Gb
Получить размер элементов определенного типа файла с помощью PowerShell
Получить размеры папок и подпапок с помощью PowerShell
До сих пор все рассмотренные нами команды отображали общий размер отдельных элементов в указанном каталоге. Если в родительском каталоге есть подкаталоги, размер элементов будет нет накапливаться в результатах.
Чтобы получить размер элементов внутри подпапок, вы должны использовать параметр «-Recurse». Это используется в сочетании с «-ErrorAction SilentlyContinue» для обхода ошибок доступа к каталогу, таких как «Отказано в доступе» и т. д.
Вот два примера использования параметра «-Recurse» для получения размера родительского каталога, а также подкаталогов:
(gci (PathToFolder) –Recurse -ErrorAction SilentlyContinue| измерение длины -s).sum / 1Gb “{0:NX} ГБ” -f ((gci –force (PathToFolder) –Recurse -ErrorAction SilentlyContinue| измерение длины -s). сумма / 1Gb)
Получить размеры папок и подпапок с помощью параметра -Recurse в PowerShell
Обратите внимание, что этот командлет также будет включать размеры всех скрытых элементов.
Помимо определения размера родительской и дочерней папок, вы также можете применять фильтры. Например, вы можете найти размер элементов, созданных в определенный день, определенный месяц или определенный год. Они определяются путем ввода дат начала и окончания, которые соответственно определяются параметрами «-gt» (больше) и «-lt» (меньше).
Вот синтаксис для получения размера папки с подпапками, созданной в апреле 2022 года:
Примечание: Формат даты: ММ/ДД/ГГ.
(gci -force (PathToFolder) –Recurse -ErrorAction SilentlyContinue | ? {$_.CreationTime -gt ‘4/1/22’ -AND $_.CreationTime -lt ‘4/30/22’}| измерение длины -s) .сум / 1Gb
Получите размеры папок и подпапок с временным фильтром с помощью PowerShell
Вы также можете применить эти фильтры, используя приведенные ранее команды, чтобы получить размеры папок только для родительских папок.
Теперь, чтобы усложнить ситуацию, давайте предположим, что вы должны получить размер каждого подкаталога внутри папки. Это также можно сделать с помощью PowerShell. Конечно, результаты будут включать размер элементов внутри подкаталогов и представлены в аккуратном табличном формате.
Тем не менее, чтобы это работало, вы должны либо разрешить выполнение сценариев внутри PowerShell, либо использовать PowerShell ISE для запуска следующего сценария:
$targetfolder=’D:\’ $dataColl = @() gci -force $targetfolder -ErrorAction SilentlyContinue | ? { $_ -is (io.directoryinfo) } | % { $len = 0 gci -recurse -force $_.fullname -ErrorAction SilentlyContinue | % { $len += $_.length } $foldername = $_.fullname $foldersize= ‘{0:N2}’ -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 «Размер всех подкаталогов на диске D»
Получить все размеры папок подкаталогов с помощью сценария PowerShell
Конечно, вы можете изменить каталог для сканирования, а также имя выходного файла в приведенном выше сценарии.
Еда на вынос
Независимо от того, насколько велик файл или папка, с помощью PowerShell вы можете мгновенно определить их размер и спланировать заранее.
Методы, описанные в этом посте, позволяют вам получить размер папки, папки, а также ее подкаталогов, размер элементов определенного типа файлов внутри папки или даже отфильтровать их в течение определенного времени. Сделайте свой выбор и узнайте размер вашей папки (папок).
Эти методы особенно полезны, если вы хотите определить размер базы данных перед миграцией, резервным копированием сайта или просто хотите освободить место на жестком диске.
Похожие сообщения: