I can't figure out how to recode the second clause of this function to handle directories like one named "[]"
function Get-DiskUsage { # parse and pray (but it does accept directory [] # ------------------------------------------------ dir | ? { $_.psIsContainer } | % { $size = ((@(cmd /c dir /s $_.name)[-2])[25..39] -join '') if ($size[14] -eq ' ') { $size = ' ' + ((@(cmd /c dir /s $_.name)[-2])[25..38] -join '') } $name = $_.name ' ' + $size + ' ' + $name } # object oriented, but it does not accept directory [] # ----------------------------------------------------- Get-ChildItem -Directory | Select-Object @{ Name="Size"; Expression={ ($_ | Get-ChildItem -Recurse | Measure-Object -Sum Length).Sum + 0 } }, Name }