Format-Table 是什么
Format-Table 把对象渲染成对齐的表格,用 -Property 选择列、-AutoSize 自适应列宽、-GroupBy 按属性分组。它只负责展示:输出的已经不是原始对象,而是用于显示的格式化对象,因此不能再用它继续做计算。
基本信息
| 适用平台 | Windows PowerShell 5.1 与 PowerShell 7 |
|---|---|
| 语法 | <对象> | Format-Table [-Property] 列名 [-AutoSize] [-Wrap] [-GroupBy 属性] |
| 计算列 | 可用哈希表写法自定义列名与表达式,例如 @{n='MB';e={...}} |
| 输出性质 | 格式化对象只用于显示,不适合再参与后续筛选与计算 |
| 同类命令 | Format-List 逐项展开、Format-Wide 多列紧凑显示 |
典型使用场景
- 把进程列表整理成只看名称、编号与内存的紧凑表格
- 按状态分组查看服务,快速看出哪些没在运行
- 用计算列把字节换算成易读的单位
- 输出前调整列顺序,让关键字段排在前面
- 生成便于复制粘贴到文档或邮件的结果
常用示例
常用示例
# 指定列并自适应宽度
Get-Process | Sort-Object WS -Descending | Format-Table -AutoSize Name, Id, WS
# 计算列:把字节换算成 MB
Get-Process | Format-Table -AutoSize Name, @{n='内存MB';e={[math]::Round($_.WS/1MB)}}
# 按状态分组展示服务
Get-Service | Format-Table -GroupBy Status Name, DisplayName
# 列宽不足时折行显示完整内容
Get-Service | Format-Table -Wrap Name, DisplayName
# 逐项展开,适合字段多的情况
Get-Service Spooler | Format-List *常用参数
| 参数 | 作用 | 注意 |
|---|---|---|
| -Property | 选择显示列 | 可传数组,也可用哈希表自定义列 |
| -AutoSize | 按内容自适应列宽 | 属性多时表头与内容更易读 |
| -Wrap | 内容超宽时折行 | 避免显示省略号 |
| -GroupBy | 按属性分组显示 | 分组后不能再用分组字段筛选 |
| -HideTableHeaders | 隐藏表头 | 适合生成纯数据输出 |
列宽不足时内容会被截断并显示省略号,加 -Wrap 折行能看到完整值;排查数据异常时优先用 Format-List,逐字段展开不易漏看。
把 Format-Table 放在管道中间会导致后续命令失效:格式化对象没有原始属性,再筛选取值都会得到空结果。计算与筛选必须写在格式化之前。