首页/系统/Windows 运维速查/Format-Table 表格输出
PowerShell 基础66 条

Format-Table 表格输出

把对象渲染成对齐表格:-AutoSize 自适应、-Property 选列、-GroupBy 分组;仅用于展示,不参与后续计算。

Windows 运维速查系统更新于 2026-10-13

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 放在管道中间会导致后续命令失效:格式化对象没有原始属性,再筛选取值都会得到空结果。计算与筛选必须写在格式化之前。

易错点

  • 在格式化之后继续筛选或取值会得不到结果,因为对象已被替换成显示用的格式化对象
  • 默认会按当前窗口宽度裁剪列,属性多时关键字段可能根本不显示,需显式指定列或加 -AutoSize
  • 把格式化输出保存到变量再参与计算,后续逻辑往往静默失败
  • 分组展示后仍想按分组字段筛选,实际已无法取回原始属性
  • 需要完整数据做二次处理时用了格式化命令,应改用对象形式的命令或先导出数据

数据来源与参考

  • Microsoft Learn:Format-Table

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌