powershell 如何获取共享驱动器中的顶级文件夹的文件夹大小,并将其从大到小排序

s6fujrry  于 2023-02-19  发布在  Shell
关注(0)|答案(1)|浏览(165)

我正在使用get-childitem命令来获取共享驱动器中的文件夹。但是当我使用属性length时,它返回空。如何使用powershell按大小对文件夹大小进行排序
命令iam使用获取子项路径$路径目录深度0
我已经试过取得孩子的指挥权了。

polhcujo

polhcujo1#

您可以使用ForEach-Object循环,迭代共享中的顶层文件夹,如下所示:

Get-ChildItem -Path $path -Directory | ForEach-Object {
    $size = 0 + (Get-ChildItem -Path $_.FullName -File | Measure-Object -Property Length -Sum).Sum
    [PsCustomObject]@{
        Directory = $_.Name
        Size = $size
    }
} | Sort-Object Size -Descending

或者将计算属性与Select-Object cmdlet一起使用,如下所示:

Get-ChildItem -Path $path -Directory | 
Select-Object @{ Name = 'Directory'; Expression = {$_.Name}},
              @{ Name = 'Size'; Expression = { 
                0 + (Get-ChildItem -Path $_.FullName -File | Measure-Object -Property Length -Sum).Sum}
              } | 
Sort-Object Size -Descending

P.S.如果您希望为没有文件的文件夹使用空白而不是0,只需删除0 +

相关问题