Format-List

将输出的格式设置为属性列表,其中每个属性都显示在一个新行上。

语法

Format-List
      [[-Property] <Object[]>]
      [-GroupBy <Object>]
      [-View <string>]
      [-ShowError]
      [-DisplayError]
      [-Force]
      [-Expand <string>]
      [-InputObject <psobject>]
      [<CommonParameters>]

说明

Format-List cmdlet 将命令输出的格式设置为属性列表,其中每个属性都显示在一个单独的行上。 可使用 Format-List 将对象的全部或所选属性的格式设置为列表 (Format-List -Property *) 并进行显示。

因为与表相比,列表中的各项具有更多可用的空间,所以 PowerShell 可在列表中显示更多的对象属性,而且属性值被截断的可能性更小。

示例

示例 1:设置计算机服务的格式

Get-Service | Format-List

此命令将计算机上服务的相关信息的格式设置为列表。 默认情况下,将这些服务的格式设置为表。 Get-Service cmdlet 获取表示计算机上的服务的对象。 管道运算符 (|) 通过管道将结果传递给 Format-List。 然后,Format-List 命令将服务信息的格式设置为列表,并将其发送到默认的输出 cmdlet 以供显示。

示例 2:设置 PS1XML 文件的格式

这些命令将以列表形式显示有关 PowerShell 目录中 PS1XML 文件的信息。

$A = Get-ChildItem $pshome\*.ps1xml
Format-List -InputObject $A

第一个命令获取表示该文件的对象,并将它们存储在 $A 变量中。

第二个命令使用 Format-List 来设置有关存储在 $A 中对象的信息的格式。 此命令使用 InputObject 参数将该变量传递给 Format-List,后者随后将已设置格式的输出发送到默认的输出 cmdlet 以供显示。

示例 3:按名称设置进程属性的格式

此命令将显示计算机上每个进程的名称、基本优先级和优先级类。

Get-Process | Format-List -Property Name, BasePriority, PriorityClass

它使用 Get-Process cmdlet 来获取表示每个进程的对象。 管道运算符 (|) 通过管道将进程对象传递给 Format-ListFormat-List 将进程的格式设置为指定属性的列表。 Property 参数名为可选项,因此可将其省略。

示例 4:设置进程的所有属性的格式

此命令显示 Winlogon 进程的所有属性。

Get-Process winlogon | Format-List -Property *

它使用 Get-Process cmdlet 来获取表示 Winlogon 进程的对象。 管道运算符 (|) 通过管道将 Winlogon 进程对象传递给 Format-List。 该命令使用 Property 参数来指定属性,并使用 * 指示所有属性。 由于 Property 参数的名称为可选项,因此可将其省略,并键入命令 Format-List *Format-List 自动将结果发送到默认的输出 cmdlet 以供显示。

示例 5:排查格式错误

下面的示例显示了使用表达式添加 DisplayError 或 ShowError 参数所产生的结果

PC /> Get-Date | Format-List DayOfWeek,{ $_ / $null } -DisplayError

DayOfWeek    : Friday
 $_ / $null  : #ERR

PC /> Get-Date | Format-List DayOfWeek,{ $_ / $null } -ShowError

DayOfWeek    : Friday
 $_ / $null  :

Failed to evaluate expression " $_ / $null ".
+ CategoryInfo          : InvalidArgument: (12/21/2018 7:59:23 AM:PSObject) [], RuntimeException
+ FullyQualifiedErrorId : PSPropertyExpressionError

参数

-DisplayError

指示此 cmdlet 在命令行上显示错误。 此参数很少使用,但当你在 Format-List 命令中设置表达式的格式,并且这些表达式似乎无法正常工作时,此参数可用于帮助调试。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Expand

指定格式化的集合对象以及集合中的对象。 此参数旨在用于设置支持 System.Collections.ICollection 接口的对象的格式。 默认值为 EnumOnly。 此参数的可接受值为:

  • EnumOnly。 显示集合中的对象的属性。
  • CoreOnly。 显示集合对象的属性。
  • Both。 显示集合对象的属性以及集合中的对象的属性。
Type:String
Accepted values:CoreOnly, EnumOnly, Both
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

指示此 cmdlet 显示所有错误信息。 与 DisplayError 或 ShowError 参数一起使用。 默认情况下,当将错误对象写入到错误或显示流时,仅显示部分错误信息。

设置某些 .NET 类型的格式时也是必需的。 有关详细信息,请参阅说明部分。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GroupBy

根据共享属性或值指定组中的输出。 请输入表达式或输出的属性。

GroupBy 参数的值可以是新计算属性。 计算属性可以是脚本块或哈希表。 有效的键值对包括:

  • Name(或 Label)- <string>
  • Expression - <string><script block>
  • FormatString - <string>

有关详细信息,请参阅 about_Calculated_Properties

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

指定要设置格式的对象。 输入一个包含对象的变量,或键入可获取对象的命令或表达式。

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Property

指定要在屏幕上显示的对象属性及其显示顺序。 允许使用通配符。

如果省略此参数,则屏幕上显示的属性取决于要显示的对象。 参数名 Property 为可选项。 不能在同一命令中使用 Property 和 View 参数

Property 参数的值可以是新的计算属性。 计算属性可以是脚本块或哈希表。 有效的键值对包括:

  • Name(或 Label)- <string>
  • Expression - <string><script block>
  • FormatString - <string>

有关详细信息,请参阅 about_Calculated_Properties

Type:Object[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-ShowError

指示 cmdlet 通过管道发送错误。 此参数很少使用,但当你在 Format-List 命令中设置表达式的格式,并且这些表达式似乎无法正常工作时,此参数可用于帮助调试。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-View

指定替代列表格式或视图的名称。 不能在同一命令中使用 Property 和 View 参数

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

PSObject

你可以通过管道将任何对象传递给此 cmdlet。

输出

Microsoft.PowerShell.Commands.Internal.Format

此 cmdlet 返回表示列表的格式对象。

备注

PowerShell 包含以下 Format-List 别名:

  • 所有平台:
    • fl

格式 cmdlet(例如 Format-List)可以排列要显示的数据,但并不实际显示它。 数据可通过 PowerShell 的输出功能和包含 Out 谓词的 cmdlet (Out cmdlet)(例如 Out-HostOut-File)来显示。

如果未使用格式 cmdlet,则 PowerShell 将对要显示的每个对象应用默认格式。

GroupBy 参数假定对象已进行排序。 使用 Format-List 对对象进行分组之前,请使用 Sort-Object

使用 View 参数可以指定表的替代格式。 可以使用 PowerShell 目录中的 *.format.PS1XML 文件中定义的视图,或者可在新的 PS1XML 文件中创建自己的视图,并使用 Update-FormatData cmdlet 将它们包括在 PowerShell 中。

View 参数的替代视图必须使用列表格式;否则,该命令将失败。 如果替代视图为表,请使用 Format-Table。 如果替代视图不是列表或表,请使用 Format-Custom

如果要将 Format-List 与 Property 参数一起使用,则需要在以下任一条件下包括 Force 参数: