Passing properties down pipeline with Measure-Object

This topic contains 2 replies, has 2 voices, and was last updated by  Eug 7 months, 2 weeks ago.

  • Author
  • #63645


    I am trying to write a PowerShell command to return the size of each immediate sub-folder. The script should return the size of the size of the file layer of subfolders and for each subfolder the sum of all of its decedents. I have written the following and it give me the info, however in doing so I lost the folder name property.
    gci -Directory | ForEach-Object {Get-ChildItem -file $_ -Recurse | Measure-Object -sum length} |Format-Table
    Namely I need the name first layer displayed along side the sum of length of all of its subsequent decedents.

    How do I achieve this?

  • #63661

    Daniel Krebs

    The following could work for you:

    Get-ChildItem -Directory | ForEach-Object {
        [PSCustomObject] @{
            FolderPath = $_.FullName
            FolderSize = Get-ChildItem -Path $_.FullName -File -Recurse -ErrorAction SilentlyContinue | 
                Measure-Object -Sum Length | Select-Object -ExpandProperty Sum
    • #63712


      Good stuff Daniel, thanks, that is exactly what I need.

You must be logged in to reply to this topic.