将输出的格式设置为表。

语法

Format-Table [[-Property] <Object[]>] [-AutoSize] [-DisplayError] [-Expand <string>] [-Force] [-GroupBy <Object>] [-HideTableHeaders] [-InputObject <psobject>] [-ShowError] [-View <string>] [-Wrap] [<CommonParameters>]

说明

Format-Table cmdlet 将命令输出的格式设置为表,表中每列显示选定的对象属性。对象类型可确定默认布局以及每列中显示的属性,但也可以使用 Property 参数来选择要查看的属性。

也可在显示对象前使用哈希表为对象添加计算属性,以及使用哈希表指定表格中的列标题。若要添加计算属性,请使用 Property 或 GroupBy 参数。

参数

-AutoSize

根据数据的宽度调整列大小和列数。默认情况下,列大小和列数由视图确定。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-DisplayError

在命令行中显示错误。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Expand <string>

设置集合对象以及集合中的对象的格式。此参数用于设置支持 ICollection (System.Collections) 接口的对象的格式。默认值为 EnumOnly。

有效值包括:

-- EnumOnly:显示集合中的对象的属性。

-- CoreOnly:显示集合对象的属性。

-- Both:显示集合对象的属性以及集合中对象的属性。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Force

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

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-GroupBy <Object>

基于属性值,将单独的表格中的排序结果进行排列。例如,可基于服务状态,使用 GroupBy 列出单独的表中的服务。

请输入表达式或输出的属性。在将输出内容发送至 Format-Table 前必须对其进行排序。

GroupBy 参数的值可以是新的计算属性。若要创建计算属性,请使用哈希表。有效键包括:

-- Name(或 Label)<字符串>

-- Expression <字符串> 或 <脚本块>

-- FormatString <字符串>

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-HideTableHeaders

省略表中的列标题。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-InputObject <psobject>

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

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByValue)

是否接受通配符?

false

-Property <Object[]>

指定要在屏幕上显示的对象属性及其显示顺序。键入一个或多个属性名称(用逗号分隔),或者使用哈希表显示计算属性。允许使用通配符。

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

Property 参数的值可以是新的计算属性。若要创建计算属性,请使用哈希表。有效键包括:

-- Name(或 Label)<字符串>

-- Expression <字符串> 或 <脚本块>

-- FormatString <字符串>

-- Width <int32>

-- Alignment(值可以是“Left”、“Center”或“Right”)。

是否为必需?

false

位置?

1

默认值

是否接受管道输入?

false

是否接受通配符?

false

-ShowError

通过管道发送错误。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-View <string>

指定可选表格式或“视图”的名称。不能在同一命令中使用 Property 和 View 参数。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Wrap

在下一行显示超过列宽的文本。默认情况下,超过列宽的文本将被截断。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

System.Management.Automation.PSObject

可以通过管道将任何对象传递给 Format-Table。

输出

Microsoft.PowerShell.Commands.Internal.Format

Format-Table 返回表示表的格式对象。

说明

还可以使用 Format-Table 的内置别名“FT”来对其进行引用。有关详细信息,请参阅 about_Aliases。

GroupBy 参数假定对象已经过排序。在使用 Format-Custom 对对象进行分组之前,请使用 Sort-Object 对它们进行排序。

使用 View 参数可以指定表的可选格式。您可以使用 Windows PowerShell 目录中的 *.format.PS1XML 文件中定义的视图,也可以在新的 PS1XML 文件中创建自己的视图,然后使用 Update-FormatData cmdlet 将它们包括在 Windows PowerShell 中。

View 参数的可选视图必须使用表格式,否则,该命令将失败。如果可选视图为列表,请使用 Format-List。如果可选视图既不是列表也不是表,请使用 Format-Custom。

示例 1

C:\PS>get-pssnapin | format-table -auto

说明
-----------
此命令将 Windows PowerShell 管理单元的相关信息设置为表格式。默认情况下,这些信息将设置为列表格式。Get-PSSnapin cmdlet 获取表示管理单元的对象。管道运算符 (|) 将对象传递给 Format-Table 命令。Format-Table 设置表中对象的格式。Autosize 参数调整列宽以尽可能减少截断。






示例 2

C:\PS>get-process | sort-object -property basepriority | format-table -groupby basepriority -wrap

说明
-----------
此命令可分组显示计算机上的进程,即,具有相同基本优先级的进程分为一组进行显示。

Get-Process cmdlet 获取表示计算机上每个进程的对象。管道运算符 (|) 将对象传递至 Sort-Object cmdlet,该 cmdlet 按照对象的基本优先级将对象进行排序。


另一个管道运算符将结果传递给 Format-Table 命令。GroupBy 参数基于进程的 BasePriority 属性值对进程的有关数据进行分组。Wrap 参数可确保数据不会被截断。






示例 3

C:\PS>get-process | sort-object starttime | format-table -view starttime

说明
-----------
此命令将根据进程的开始日期分组显示计算机上进程的相关信息。它使用 Get-Process cmdlet 来获取表示计算机上进程的对象。管道运算符 (|) 将 Get-Process 的输出发送给 Sort-Object cmdlet,后者根据 StartTime 属性对其进行排序。另一个管道运算符将排序的结果发送给 Format-Table。

View 参数用于为 System.Diagnostics.Process 对象(例如由 Get-Process 返回的对象)选择 DotNetTypes.format.ps1xml 格式设置文件中定义的 StartTime 视图。此视图将进程的 StartTime 转换为短日期格式,然后按开始日期对进程进行分组。

DotNetTypes.format.ps1xml 格式设置文件还包含用于进程的 Priority 视图,您可通过自定义视图创建自己的 format.ps1xml 文件。






示例 4

C:\PS>get-service | format-table -property Name, DependentServices

说明
-----------
此命令在具有两列(Name 和 DependentServices)的表中显示计算机上的所有服务。该命令使用 Get-Service cmdlet 获取计算机上的所有服务。管道运算符 (|) 将结果发送给 Format-Table cmdlet,该 cmdlet 将输出格式设置为表。Property 参数指定按列的形式显示在表中的属性。Property 参数名为可选项,因此可以省略(“format-table name, dependentservices”)。

Property 和 DependentServices 仅仅是服务对象的两个属性。要查看所有属性,请键入“get-service | get-member”。






示例 5

C:\PS>get-process notepad | format-table ProcessName, `
@{Label="TotalRunningTime"; Expression={(get-date) - $_.StartTime}}

说明
-----------
此命令将显示在表中使用计算属性的方法。该命令将显示具有本地计算机上所有 Notepad 进程的进程名称和总运行时间的表。总运行时间是通过从当前时间减去每个进程的开始时间而计算出来的。

该命令使用 Get-Process cmdlet 来获取本地计算机上所有名为“Notepad”的进程。管道运算符 (|) 将结果发送给 Format-Table,后者将显示一个由两列组成的表:ProcessName 列是进程的标准属性,TotalRunningTime 列是计算属性。

TotalRunningTime 属性由具有两个键(Label 和 Expression)的哈希表指定。属性的名称将赋予 Label 键。而计算则赋予 Expression 键。Expression 将获取每个进程对象的 StartTime 属性,并从 Get-Date 命令(用于获取当前日期和时间)的结果中减去该值。






示例 6

C:\PS>$processes = get-wmiobject -ComputerName Server01 win32_process -filter "name='notepad.exe'"  

C:\PS> $processes | format-table ProcessName, @{ Label = "Total  Running Time"; `
Expression={(get-date) - $_.ConvertToDateTime($_.CreationDate)}}

说明
-----------
这些命令与上一命令相似,所不同的是,这些命令使用 Get-WmiObject cmdlet 和 Win32_Process 类来显示远程计算机上 Notepad 进程的相关信息。

第一个命令使用 Get-WmiObject cmdlet 来获取描述 Server01 计算机上所有名为 Notepad.exe 的进程的 Windows Management Instrumentation (WMI) Win32_Process 类的实例。该命令将进程信息存储在 $processes 变量中。


第二个命令使用管道运算符 (|) 将 $processes 变量中的进程信息发送给 Format-Table cmdlet,后者将显示每个进程的 ProcessName 以及新的计算属性。

该命令将新计算属性的名称 Total Running Time 赋予 Label 键。赋予 Expression 键的脚本块将通过从当前日期中减去进程创建日期来计算出进程的运行时间。Get-Date cmdlet 获取当前日期。ConvertToDateTime 方法将 Win32_Process 对象的 CreationDate 属性从 WMI CIM_DATETIME 对象转换为可与 Get-Date 的输出相比较的 Microsoft .NET Framework DateTime 对象。随后,从当前日期中减去转换的创建日期。结果是 Total Running Time 的值。

倒引号字符 (`) 是行继续符。






另请参阅




目录