ZetCode

PowerShell Format-List

最后修改:2025 年 2 月 15 日

在本文中,我们将介绍 PowerShell 中的 Format-List cmdlet。此 cmdlet 将命令输出格式化为属性列表。

Format-List 基础

Format-List cmdlet 将输出显示为属性列表。每个属性都显示在新行上,并附带其值。这对于查看对象的全部属性非常有用。默认的表格视图通常会截断信息。

Format-List 基本用法

使用 Format-List 最简单的方法是将任何 cmdlet 的输出通过管道传递给它。这将以垂直列表格式显示所有属性。星号 (*) 通配符显示所有可用的属性。

formatlist1.ps1
Get-Process | Format-List *

此命令检索所有进程并显示其全部属性。每个属性都显示在自己的行上,以便更好地阅读。

显示特定属性

您可以使用 Format-List 选择要显示的特定属性。这可以帮助您专注于相关信息并减少混乱。在 cmdlet 之后列出属性名称,用逗号分隔。

formatlist2.ps1
Get-Process -Name "notepad" | Format-List Name, Id, CPU, StartTime

此命令仅显示记事本进程的名称、ID、CPU 使用率和启动时间。与显示所有属性相比,输出更加简洁。

PS C:\> .\formatlist2.ps1

Name      : notepad
Id        : 1234
CPU       : 1.2345678
StartTime : 2/15/2025 10:30:45 AM

格式化服务信息

Format-List 也适用于与服务相关的 cmdlet。它有助于显示 Windows 服务的全部配置详细信息。这对于排查服务问题非常有用。

formatlist3.ps1
Get-Service -Name "WinRM" | Format-List *

此命令显示 Windows Remote Management 服务的全部属性。输出包括状态、启动类型和依赖项。

自定义属性显示

您可以使用计算属性创建自定义属性显示。这允许您在输出中格式化或组合值。使用带有 Name 和 Expression 键的哈希表。

formatlist4.ps1
Get-Process | Format-List Name, @{Name="Memory(MB)";Expression={$_.WS/1MB}}

此命令显示进程名称以及转换为 MB 的工作集内存。计算属性执行转换以提高可读性。

格式化注册表项信息

Format-List 非常适合显示注册表项详细信息。注册表项通常有很多属性,这些属性在表格中显示不方便。这提供了注册表项的全面视图。

formatlist5.ps1
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion" | Format-List *

此命令显示 Windows CurrentVersion 注册表项的全部属性。列表格式清楚地显示了每个值。

与 Format-Table 比较

虽然 Format-Table 适合概述,但 Format-List 提供详细信息。此示例显示了两个格式化 cmdlet 对同一数据的区别。

formatlist6.ps1
# Table format (default)
Get-Process -Name "powershell"

# List format
Get-Process -Name "powershell" | Format-List *

第一个命令以表格格式显示基本的进程信息。第二个命令以易于阅读的列表格式显示所有可用属性。

使用 -Property 限制输出

-Property 参数提供了选择属性的替代语法。这可以使脚本在选择许多属性时更具可读性。它的功能与直接列出属性相同。

formatlist7.ps1
Get-Service | Format-List -Property DisplayName, Status, StartType

此命令显示服务的显示名称、状态和启动类型。-Property 参数清楚地指出了显示了哪些字段。

来源

PowerShell 文档

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

作者

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

列出 所有 PowerShell 教程