Skip to content

Instantly share code, notes, and snippets.

@gatesvp
Created July 18, 2012 19:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gatesvp/3138244 to your computer and use it in GitHub Desktop.
Save gatesvp/3138244 to your computer and use it in GitHub Desktop.
PowerShell Get-FolderSizes
### Sample usage: Get-FolderSizes "C:\data" | sort size -Descending | FT -AutoSize
function Get-FolderSizes([string] $StartFolder) {
$results = @();
$colItems = (Get-ChildItem $StartFolder | Measure-Object -property length -sum)
$res = New-Object PSObject | select Folder, Size;
$res.Folder = $startFolder;
$res.Size = [float]("{0:N2}" -f ($colItems.sum / 1MB));
$results += $res;
$colItems = (Get-ChildItem $startFolder -recurse | Where-Object {$_.PSIsContainer -eq $True} | Sort-Object)
foreach ($i in $colItems)
{
$subFolderItems = (Get-ChildItem $i.FullName | Measure-Object -property length -sum -ErrorAction Ignore)
if($subFolderItems)
{
$res = New-Object PSObject | select Folder, Size;
$res.Folder = $i.FullName;
$res.Size = [float]("{0:N2}" -f ($subFolderItems.sum / 1MB))
$results += $res;
}
}
$results;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment