ZetCode

PowerShell Format-Custom

最后修改:2025 年 2 月 15 日

在本文中,我们将介绍 PowerShell 中的 Format-Custom cmdlet。此 cmdlet 以用户定义的自定义视图格式化输出。

格式化基础知识

PowerShell 提供了多种格式化 cmdlet 来控制输出显示。Format-Custom 创建对象的自定义视图。它使用预定义视图或用户定义的属性集。这实现了灵活的输出格式化。

Format-Custom 的基本用法

使用 Format-Custom 的最简单方法是处理单个对象。它以结构化视图显示对象的属性。输出以分层格式显示属性名称和值。

format1.ps1
Get-Process -Name "notepad" | Format-Custom

此命令检索记事本进程并以自定义方式格式化它们。输出以结构化的、缩进的格式显示进程详细信息。

格式化特定属性

您可以使用 Format-Custom 选择要显示的特定属性。使用 -Property 参数后跟属性名称。这会创建一个仅显示选定属性的聚焦视图。

format2.ps1
Get-Process -Name "chrome" | Format-Custom -Property Name, Id, CPU

此命令仅显示 Chrome 进程的 Name、ID 和 CPU 属性。输出是结构化的,但仅限于指定的属性。

使用 depth 参数

-Depth 参数控制显示多少层嵌套对象。默认情况下,PowerShell 显示最多五层。这可以防止输出过于深入。您可以根据需要进行调整。

format3.ps1
Get-Service | Format-Custom -Depth 2

此命令以最大深度 2 显示服务信息。超过此深度的复杂对象将在输出中被截断。

与 Select-Object 结合使用

Format-Custom 可以与 Select-Object 结合使用以获得更多控制。先选择属性,然后以自定义方式格式化它们。这提供了在格式化之前选择属性的灵活性。

format4.ps1
Get-Process | Select-Object -First 3 -Property Name, Id, WS | Format-Custom

此命令选择具有特定属性的三个进程,然后格式化它们。输出仅显示自定义格式的选定属性。

带计算属性的自定义视图

您可以为 Format-Custom 创建计算属性。使用带有 Name 和 Expression 键的哈希表。这允许在自定义视图中显示派生值。

format5.ps1
Get-Process | Select-Object -First 2 -Property Name, @{
    Name="MBMemory"; Expression={$_.WS/1MB}
} | Format-Custom

此命令显示进程名称以及以兆字节为单位的工作集内存。计算属性将字节转换为 MB 以提高可读性。

格式化复杂对象

Format-Custom 对于复杂对象特别有用。它可以清晰地显示嵌套属性。这有助于理解对象结构。输出显示了属性之间的关系。

format6.ps1
Get-ChildItem | Select-Object -First 1 | Format-Custom

此命令显示文件系统项的详细信息。输出以分层、可读的格式显示所有属性。

使用 Format-Custom 进行分组

您可以将 Group-ObjectFormat-Custom 结合使用。首先按属性对对象进行分组,然后格式化组。这会创建分类数据的结构化视图。

format7.ps1
Get-Process | Group-Object -Property Company | Select-Object -First 3 | Format-Custom

此命令按公司名称对进程进行分组并格式化前三个组。输出显示分组结构以及进程详细信息。

来源

PowerShell 文档

在本文中,我们介绍了 PowerShell 中的 Format-Custom cmdlet。

作者

我叫 Jan Bodnar,我是一名热情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。迄今为止,我已撰写了 1400 多篇文章和 8 本电子书。我在教授编程方面拥有十多年的经验。

列出 所有 PowerShell 教程