This site is hosted and sponsored by hyve.com specialists in Cloud Hosting UK and VMware Hosting. If you are interested in our services please call us for chat on 0800 612 2524
Get Size of folder and sub folders recursively Windows Powershell#
function Get-DirSize {
<#
.Synopsis
Gets a list of directories and sizes.
.Description
This function recursively walks the directory tree and returns the size of
each directory found.
.Parameter path
The path of the root folder to start scanning.
.Example
# Get the largest folder under the user profile
PS> (Get-DirSize $env:userprofile | sort Size)[-1]
.Example
# Get the folder sizes of all folders under each folder in $folders
PS> $folders | Get-DirSize
.Example
# Create a tab-separated text file of Folders and Sizes
PS> 'Folder', 'Size' -join "`t" > folder_sizes.txt
PS> Get-DirSize C:\MyFolder | Sort-Object Size -desc |
>> %{$_.Folder, $_.Size -join "`t"} >> folder_sizes.txt
.ReturnValue
An object with Folder and Size properties.
#>
param([Parameter(Mandatory = $true, ValueFromPipeline = $true)][string]$path)
BEGIN {}
PROCESS{
$size = 0
$folders = @()
foreach ($file in (Get-ChildItem $path -Force -ea SilentlyContinue)) {
if ($file.PSIsContainer) {
$subfolders = @(Get-DirSize $file.FullName)
$size += $subfolders[-1].Size
$folders += $subfolders
} else {
$size += $file.Length
}
}
$object = New-Object -TypeName PSObject
$object | Add-Member -MemberType NoteProperty -Name Folder `
-Value (Get-Item $path).FullName
$object | Add-Member -MemberType NoteProperty -Name Size -Value $size
$folders += $object
Write-Output $folders
}
END {}
}
'Folder', 'Size' -join "`t" > folder_sizes.txt
Get-DirSize "[C:\PATH\XXX" | Sort-Object Size -desc | %{$_.Folder, $_.Size -join "`t"} >> folder_sizes.txt
Back to powershell
Add new attachment
Only authorized users are allowed to upload new attachments.
«
This page (revision-1) was last changed on 28-Dec-2011 17:24 by Hyve Support