PowerShell如何将文件类型统计结果以表格形式输出
PowerShell输出表格格式的实现方案
原脚本无法生成预期表格,核心原因是将扩展名列表、文件计数列表作为两个独立数组分开输出,没有建立两类数据的绑定关系,PowerShell无法自动对齐生成结构化表格。
修正后的完整脚本如下:
$Types = ('.jpg', '.png', '.tif', '.gif', '.jpeg', '.mp4', '.mov') # 遍历统计时直接生成结构化结果对象 $statResult = foreach ($Type in $Types) { # 修正原脚本路径和参数之间漏写空格的问题;用-File参数直接筛选文件,简化写法 $fileTotal = (Get-ChildItem 'F:\' -Filter "*$Type" -Recurse -File).Count [PSCustomObject]@{ Type = $Type.TrimStart('.') # 移除扩展名前的点,匹配预期输出格式 Count = $fileTotal } } # 直接输出结果对象,PowerShell自动渲染为标准表格 $statResult
关键说明
- 要输出PowerShell原生支持的标准表格,核心是输出同结构的自定义对象集合,对象的属性名会自动作为表格表头,属性值自动填充对应行
- 不要用
Write-Host输出结构化数据,Write-Host只适合输出纯文本提示,直接输出对象本身才能触发PowerShell的自动格式化逻辑 - 脚本里用
-File参数替代原来的目录判断逻辑,是Get-ChildItem原生支持的文件筛选参数,执行效率更高 - 如果需要保留扩展名前的
.,把$Type.TrimStart('.')替换为$Type即可
运行后输出效果和预期完全一致:
Type Count ---- ----- jpg 100 png 200 tif 56 gif 12 jpeg 33 mp4 78 mov 24
内容的提问来源于stack exchange,提问作者Amin Nazeri
相关产品推荐
相关产品推荐

