PowerShell Format-Table
最后修改:2025 年 2 月 15 日
在本文中,我们将介绍 PowerShell 中的 Format-Table cmdlet。此 cmdlet 将命令输出格式化为包含选定属性的表。
Format-Table 基础知识
Format-Table cmdlet 将输出格式化为表。它以列的形式显示对象的选定属性。默认情况下,PowerShell 对许多 cmdlet 使用 Format-Table。您可以自定义要显示的属性及其顺序。
当您想以清晰的表格格式查看特定的对象属性时,Format-Table 特别有用。它有助于组织输出,提高可读性。该 cmdlet 支持各种参数进行自定义。
Format-Table 的基本用法
使用 Format-Table 的最简单方法是将其输出通过管道传递给它。这将输出格式化为具有默认属性的表。表将根据内容自动调整列宽。这对于快速查看对象属性很有用。
Get-Process | Format-Table
此命令检索所有进程并将其格式化为表。输出显示 Name、Id 和 CPU 使用率等默认属性。表格式使扫描信息更容易。
选择特定属性
您可以使用 -Property 参数选择要显示的属性。这使您可以自定义表列。可以在逗号分隔的列表中指定多个属性。顺序决定列的顺序。
Get-Process | Format-Table -Property Name, Id, CPU, WorkingSet
此命令仅显示 Name、Id、CPU 和 WorkingSet 列。输出比默认视图更聚焦。WorkingSet 以字节为单位显示内存使用情况。
PS C:\> .\format2.ps1 Name Id CPU WorkingSet ---- -- --- ---------- chrome 6784 0.328125 27262976 chrome 6792 0.281250 26615808 explorer 6824 0.109375 35799040
自定义列宽
-AutoSize 参数可调整列宽以适应内容。没有它,列可能会被截断。对于宽表,-Wrap 可以显示所有内容。这些参数有助于优化表布局。
Get-Process | Format-Table -Property Name, Path -AutoSize
此命令确保所有进程名称和路径都完全可见。-AutoSize 参数可防止截断长路径。在查看具有可变长度属性的项目时,这很有用。
分组输出
-GroupBy 参数按属性值组织输出。这会为每个唯一值创建单独的表。分组有助于按类别分析数据。分组的属性出现在每个部分上方作为标题。
Get-Service | Format-Table -Property Name, Status -GroupBy StartType
此命令按 StartType(自动、手动等)对服务进行分组。每个组显示具有该启动类型的服务。输出比平面列表更有条理。
计算属性
您可以使用计算属性创建自定义列。这些属性使用脚本块来转换或组合数据。@{label="Name";expression={...}} 语法定义它们。这使得强大的输出自定义成为可能。
Get-Process | Format-Table Name,
@{label="Memory(MB)";expression={$_.WorkingSet/1MB -as [int]}}
此命令添加了一个自定义列,以 MB 为单位显示内存使用情况。expression 将字节转换为兆字节。-as [int] 将结果格式化为整数。这使得内存使用情况更容易理解。
隐藏标题
-HideTableHeaders 参数会从输出中删除列标题。在将输出通过管道传递给其他命令时,这很有用。标题可能会干扰进一步的处理。输出仅包含数据行。
Get-Process | Select-Object -First 3 | Format-Table -HideTableHeaders
此命令显示三个进程,没有列标题。对于处理数据的脚本,输出更干净。标题通常仅用于人类可读的输出。
组合格式选项
您可以组合多种格式选项以获得最佳输出。此示例显示了具有选定属性、自动调整大小和自定义列的进程。复杂的格式使输出更具信息性和可读性。
Get-Process |
Format-Table -Property Name,
@{label="PID";expression={$_.Id}},
@{label="CPU(s)";expression={$_.CPU}},
@{label="Memory(MB)";expression={[math]::Round($_.WorkingSet/1MB,1)}} -AutoSize
此命令创建一个全面的进程表,其中包含自定义列。内存以 MB 为单位显示,保留一位小数。-AutoSize 确保所有数据都可见。此格式对于系统监控非常有用。
来源
在本文中,我们介绍了 PowerShell 中的 Format-Table cmdlet。
作者
列出 所有 PowerShell 教程。