PowerShell中如何将Get-ChildItem的文件大小从字节改为KB显示(偏好向上取整)
将Get-ChildItem的文件大小从字节转为KB并支持向上取整
直接修改脚本,通过自定义计算属性来转换文件大小的显示格式:
1. 实现示例中的精确小数KB显示
Get-ChildItem -Recurse -Include *.7z, *.rar, *.zip, *.db, *.sql, *.bmp, *.jpg, *.jpeg, *.gif, *.odp, *.pps, *.ppt, *.pptx, *.ods, *.xls, *.xlsx, *.doc, *.docx, *.pdf, *.rtf, *.txt | Select-Object Mode, LastWriteTime, @{Name='Length'; Expression={"{0:N6}/Kb" -f ($_.Length / 1024)}}, Name
这个脚本会把字节数除以1024转换为KB,并格式化为保留6位小数的字符串,和你给出的示例效果一致。
2. 实现向上取整的KB显示
如果需要对KB值向上取整(比如817.1KB取整为818KB),修改计算属性的表达式即可:
Get-ChildItem -Recurse -Include *.7z, *.rar, *.zip, *.db, *.sql, *.bmp, *.jpg, *.jpeg, *.gif, *.odp, *.pps, *.ppt, *.pptx, *.ods, *.xls, *.xlsx, *.doc, *.docx, *.pdf, *.rtf, *.txt | Select-Object Mode, LastWriteTime, @{Name='Length'; Expression={"{0:N0}/Kb" -f [Math]::Ceiling($_.Length / 1024)}}, Name
关键说明
Select-Object:用于自定义输出的列,保留原有的Mode、LastWriteTime、Name列- 计算属性:通过
@{Name='Length'; Expression={...}}重写原有的Length列:$_.Length / 1024:将文件的字节大小转换为KB单位(1KB=1024字节)"{0:N6}/Kb":格式化字符串,N6表示保留6位小数;如果用N0则表示无小数位[Math]::Ceiling():PowerShell的数学方法,用于对数值向上取整
内容的提问来源于stack exchange,提问作者Codeman
相关产品推荐
相关产品推荐

