对话内容由 AI 自动生成,不代表官方的态度或观点
如何列出当前目录下每个文件夹的大小,并从大到小排序?
已完成搜索

要在 PowerShell 中列出当前目录下每个文件夹的大小,并按照大小从大到小排序,可以使用以下命令:

powershell
深色版本
1Get-ChildItem -Directory | ForEach-Object {
2    $size = (Get-ChildItem $_.FullName -Recurse -File | Measure-Object Length -Sum).Sum
3    [PSCustomObject]@{
4        Name = $_.Name
5        Size = "{0:N2}" -f ($size / 1MB) + " MB" # 这里将大小转换为兆字节(MB),并格式化为两位小数
6    }
7} | Sort-Object -Property Size -Descending

这段脚本首先获取当前目录下的所有子目录 (Get-ChildItem -Directory),然后对每个子目录递归计算其中所有文件的总大小 (Get-ChildItem $_.FullName -Recurse -File | Measure-Object Length -Sum)。计算出的大小被转换为易于阅读的格式(兆字节),并存储在一个自定义的对象中,该对象包含文件夹的名称和大小。最后,所有这些对象会被按照大小进行降序排序 (Sort-Object -Property Size -Descending),然后输出到控制台。

请注意,这段脚本中的大小转换为了兆字节(MB),并格式化为带有两位小数的字符串。如果你需要不同的单位(如字节、千字节、吉字节等)或不同的格式,可以相应地调整公式。