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

Порада. Для отримання розміру конкретної папки на диску також можна скористатися консольної утилітою du.exe.

Для отримання розмірів файлів і каталогів в PowerShell можна скористатися командами Get-ChildItem (псевдонім gci) i Міра-Об’єкт (псевдонім).

Перший командлет дозволяє за вказаними критеріями сформувати список файлів в заданому каталозі, а другий виконує арифметичну дію.

Наприклад, щоб отримати розмір папки 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

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

"{0:N2} GB" -f ((gci c:iso | measure Length -s).sum / 1Gb)

отримати розмір фалой в каталозі

Щоб порахувати сумарний розмір усіх файлів певного типу в каталозі використовуйте таку команду (наприклад, ми хочемо отримати загальний розмір ISO файлів в папці):

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

порахувати розмір всіх iso файлів на диску

Зазначені вище команди дозволяють отримати тільки сумарний розмір файлів у вказаній директорії. Якщо в папці міститися вкладені каталоги, розмір файлів в цих директоріях не буде врахований. Для отримання загального розміру всіх файлів в каталозі з урахуванням вкладених директорій потрібно використовувати параметр –Рекурс. Отримаємо сумарний розмір усіх файлів у папці c: Windows.

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

Щоб враховувати розмір прихованих і системних файлів я додатково вказав аргумент –Силу.

Отже, розмір каталогу C: Windows на нашому диску становить близько 16 Гб.

Порада. Щоб не показувати помилки доступу до каталогів використовуйте параметр -ErrorAction SilentlyContinue.

розрахунок розміру, який займає каталог Windows за допомогою Powershell

Можна отримати розмір всіх вкладених папок першого рівня в зазначеному каталозі. Наприклад, нам потрібно отримати розмір всіх профілів користувачів в папці C: users.

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

підрахувати розмір профілів користувачів

% – це алиас для циклу foreach-об’єкт.

Йдемо далі. Припустимо ваша задача – дізнатися розмір кожного каталогу в корені системного жорсткого диска і представити інформацію в зручній для аналізу табличній формі з можливістю сортування за розміром каталогів. Для цього скористаємося Командлети Out-GridView.

Для отримання інформації про розмір каталогів на диску 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="{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 “Размер вложенных каталогов”

отримати розмір всіх папок в корені диска C: за допомогою powershell

Як ви бачите перед вами має з’явитися графічне представлення таблиці, в якій вказані всі папки в корені системного диска C: і їх розмір. Клацнувши по заголовку стовпця таблиці, ви можете впорядкувати папки за розміром.

Leave a Reply

Your email address will not be published. Required fields are marked *