使用PowerShell,如何按大小排序所有文件夹中的所有文件?每当我使用Get-ChildItem的结果时,即使将其保存到变量并进行修改,它也会按目录对所有文件进行分组。即使这样,文件也不会在每个目录中排序。
$files = Get-ChildItem -File -Filter *.bat -Path C:\git -Recurse
Sort-Object -InputObject $files -Property Length
答案 0 :(得分:4)
我猜你正在进入System.IO.FileInfo
的默认显示模式,它会在每次更改时显示空行和目录名称。它也需要永远显示,因为Mode
列的优化程度特别差。
尝试这样的事情:
Get-ChildItem -File -Filter *.bat -Path C:\git -Recurse |
Sort-Object -Property Length |
Select-Object -Property Length, Name |
Format-Table -AutoSize
答案 1 :(得分:3)
还没有评论的评论(所以我希望这可以通过stackoverflows礼仪来解决),但是通过切换Select-Object和Sort-Object可以改善Bacon Bits的答案:
Get-ChildItem -File -Filter *.bat -Path C:\git -Recurse | Select-Object -Property Length, Name | Sort-Object -Property Length | Format-Table -AutoSize
这将提高性能,特别是在大型文件系统上(如果我在C驱动器上使用上述代码,大约50%)