如何用PowerShell按文件月龄统计占用存储空间(MB)?
PowerShell: Calculate Storage Usage by File Age (in Months)
没问题,我们可以调整你的PowerShell命令,实现按文件月龄统计存储空间占用的需求。关键是要准确计算每个文件的月龄(考虑跨年情况),然后按这个月龄分组并汇总文件大小。
实现命令
$now = Get-Date Get-ChildItem -File | Group-Object -Property { # 计算文件的月龄:年份差*12 + 月份差,避免跨年统计错误 ($now.Year - $_.LastWriteTime.Year) * 12 + ($now.Month - $_.LastWriteTime.Month) } | Sort-Object Name | Select-Object ` @{Name='Age in Months'; Expression={$_.Name}}, @{Name='Storage Space Used (MB)'; Expression={"{0:N2} MB" -f ($_.Group | Measure-Object Length -Sum).Sum/1MB}} | Format-Table -AutoSize
命令说明
Get-ChildItem -File:仅遍历当前目录下的文件(如果需要包含子目录的文件,加上-Recurse参数即可)- 分组逻辑:通过年份差×12 + 月份差的方式计算月龄,解决了跨年时的统计误差(比如去年10月的文件到今年11月,月龄会准确计算为13而非1)
Sort-Object Name:按月龄从小到大排序,让输出更符合阅读习惯- 汇总与格式化:用
Measure-Object计算每组文件的总大小,转换成MB后保留两位小数,再拼接"MB"后缀,完美匹配你想要的输出格式
示例输出
Age in Months Storage Space Used (MB) ------------- ----------------------- 0 100.00 MB 1 120.50 MB 2 50.25 MB 3 20.00 MB 4 10.75 MB 5 5.00 MB
如果需要调整小数位数,只需要修改{0:N2}中的数字(比如{0:N0}显示整数,{0:N1}显示一位小数)。
内容的提问来源于stack exchange,提问作者Matthew Liguori
相关产品推荐
相关产品推荐

