Format-Table
将输出的格式设置为表。
语法
Format-Table
[[-Property] <Object[]>]
[-AutoSize]
[-HideTableHeaders]
[-Wrap]
[-GroupBy <Object>][-View <string>]
[-ShowError]
[-DisplayError]
[-Force]
[-Expand <string>]
[-InputObject <psobject>][<CommonParameters>]
说明
Format-Table
cmdlet 将命令的输出格式化为表中每个列中对象的选定属性。 对象类型确定每个列中显示的默认布局和属性,但可以使用 属性 参数选择要查看的属性。
还可以使用哈希表在显示对象之前向对象添加计算属性,并指定表中的列标题。 若要添加计算属性,请使用 属性 或 GroupBy 参数。
示例
示例 1:设置 PowerShell 主机的格式
此命令在表中显示有关 PowerShell 主机程序的信息。 默认情况下,它们的格式在列表中。
Get-Host | Format-Table -AutoSize
Get-Host
cmdlet 获取表示主机的对象。 管道运算符 (|) 将对象传递给 Format-Table
cmdlet。
Format-Table
cmdlet 格式化表中的对象。
AutoSize 参数调整列宽以最大程度地减少截断。
示例 2:按 BasePriority 格式化进程
此命令以具有相同基本优先级的组显示计算机上的进程。
Get-Process | Sort-Object -Property basepriority | Format-Table -GroupBy basepriority -Wrap
Get-Process cmdlet 获取表示计算机上每个进程的对象。 管道运算符 (|) 将对象传递给 Sort-Object cmdlet,该 cmdlet 按其基本优先级对对象进行排序。
另一个管道运算符将结果传递给 Format-Table
cmdlet。
GroupBy 参数根据其 BasePriority 属性的值将有关进程的数据排列到组中。
Wrap 参数可确保数据不会被截断。
示例 3:按开始日期设置进程格式
Get-Process | Sort-Object starttime | Format-Table -View starttime
此命令根据进程的开始日期显示有关组中计算机上的进程的信息。 它使用 Get-Process cmdlet 获取表示计算机上的进程的对象。 管道运算符 (|) 将 Get-Process
的输出发送到 Sort-Object
cmdlet,该 cmdlet 根据 StartTime 属性对其进行排序。 另一个管道运算符将排序的结果发送到 Format-Table
。
View 参数用于选择在 System.Diagnostics.Process 对象的 DotNetTypes.format.ps1xml
文件中定义的 StartTime 视图,例如 Get-Process
返回的视图。 此视图将进程的 StartTime 转换为短日期,然后按开始日期对进程进行分组。
DotNetTypes.format.ps1xml
文件还包含进程的 优先级 视图。 可以使用自定义视图创建自己的 format.ps1xml 文件。
示例 4:设置服务格式
Get-Service | Format-Table -Property Name, DependentServices
此命令在表中显示具有两列的计算机上的所有服务,Name 和 DependentServices。
Get-Service
cmdlet 获取计算机上的所有服务。 管道运算符 (|) 将结果发送到 Format-Table
cmdlet,该 cmdlet 格式化表中的输出。
属性 参数指定表中显示为列的属性。
属性 参数的名称是可选的,因此可以省略它,例如 Format-Table Name, DependentServices
。
名称 和 DependentServices 只是服务对象的两个属性。 若要查看所有属性,请键入 Get-Service | Get-Member -MemberType Properties
。
示例 5:设置进程的格式并计算其运行时间
此命令演示如何在表中使用计算属性。
Get-Process Notepad | Format-Table ProcessName,
@{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}
该命令显示一个表,其中包含本地计算机上所有记事本进程的进程名称和总运行时间。 总运行时间是通过从当前时间减去每个进程的开始时间来计算的。
该命令使用 Get-Process
cmdlet 获取本地计算机上名为记事本的所有进程。
管道运算符 (|) 将结果发送到 Format-Table
,其中显示包含两列的表:ProcessName、进程的标准属性和计算属性 TotalRunningTime。
totalRunningTime 属性由具有两个键的哈希表指定,Label 和 Expression。 属性的名称分配给 标签 键。 计算分配给 表达式 键。 该表达式获取每个进程对象的 StartTime 属性,并从获取当前日期和时间的 Get-Date
命令的结果中减去该属性。
示例 6:设置记事本进程的格式
这些命令类似于上一个命令,只是这些命令使用 Get-WmiObject
cmdlet。
$Processes = Get-WmiObject -ComputerName "Server01" -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{ Label = "Total Running Time"; Expression={(Get-Date) - $_.ConvertToDateTime($_.CreationDate)}}
第一个命令使用 Get-WmiObject
cmdlet 获取 WMI Win32_Process 类的实例,该类描述名为 Notepad.exe
的 Server01 计算机上的所有进程。
该命令将进程信息存储在 $Processes
变量中。
第二个命令使用管道运算符 (|) 将 $Processes
变量中的进程信息发送到 Format-Table
cmdlet,该 cmdlet 显示 ProcessName 和新的计算属性。
该命令将新计算属性“总运行时间”的名称分配给 标签 键。 分配给 表达式的脚本块 键通过从当前日期减去进程的创建日期来计算进程运行的时间。
Get-Date
cmdlet 获取当前日期。
ConvertToDateTime 方法将 Win32_Process 对象的 CreationDate 属性从 WMI CIM_DATETIME 对象转换为 .NET DateTime 对象,该对象可与 Get-Date
的输出进行比较。 然后,转换后的创建日期将从当前日期减去。 结果是 总运行时间的值。
示例 7:排查格式错误
以下示例显示了使用表达式添加 DisplayError 或 ShowError 参数的结果。
PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError
DayOfWeek $_ / $null
--------- ------------
Wednesday #ERR
PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError
DayOfWeek $_ / $null
--------- ------------
Wednesday
Failed to evaluate expression " $_ / $null ".
+ CategoryInfo : InvalidArgument: (10/30/2013 2:28:07 PM:PSObject) \[\], RuntimeException
+ FullyQualifiedErrorId : mshExpressionError
参数
-AutoSize
指示 cmdlet 根据数据的宽度调整列大小和列数。 默认情况下,列大小和数字由视图确定。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DisplayError
指示 cmdlet 在命令行上显示错误。 此参数很少使用,但当你在 Format-Table
命令中设置表达式的格式时,可用作调试辅助,并且表达式似乎不起作用。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Expand
指定集合对象的格式以及集合中的对象。 此参数旨在设置支持 ICollection (System.Collections) 接口的对象的格式。 默认值为 enumOnly
- 枚举:显示集合中对象的属性。
- CoreOnly:显示集合对象的属性。
- 两者:显示集合对象的属性和集合中对象的属性。
类型: | String |
接受的值: | CoreOnly, EnumOnly, Both |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Force
指示 cmdlet 指示该 cmdlet 显示所有错误信息。 与 DisplayError 或 ShowError 参数一起使用。 默认情况下,当错误对象写入错误或显示流时,仅显示一些错误信息。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-GroupBy
根据属性值在单独的表中指定已排序的输出。 例如,可以使用 GroupBy 根据其状态在单独的表中列出服务。
输入输出的表达式或属性。 在将输出发送到 Format-Table
之前,必须对其进行排序。
GroupBy 参数的值可以是新的计算属性。 若要创建计算属性,请使用哈希表。 有效密钥包括:
- 名称(或标签)<字符串>
- 表达式 <字符串> 或 <脚本块>
- FormatString <字符串>
类型: | Object |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-HideTableHeaders
省略表中的列标题。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-InputObject
指定要设置格式的对象。 输入包含对象的变量,或键入获取对象的命令或表达式。
类型: | PSObject |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-Property
指定显示在显示中的对象属性及其显示顺序。 键入一个或多个属性名称(用逗号分隔),或使用哈希表显示计算属性。 允许通配符。
如果省略此参数,显示中显示的属性取决于第一个对象的属性。 例如,如果第一个对象 具有 PropertyA 和 PropertyB,但后续对象 PropertyA,则 PropertyB 和 PropertyC 仅 PropertyA 和 PropertyB 标头才会显示。
属性 的参数名称是可选的。 不能在同一命令中使用 属性 和 视图 参数。
属性 参数的值可以是新的计算属性。 若要创建计算属性,请使用哈希表。 有效密钥包括:
- 名称(或标签)<字符串>
- 表达式 <字符串> 或 <脚本块>
- FormatString <字符串>
- 宽度 <int32>
- 对齐方式(值可以是“Left”、“Center”或“Right”)
类型: | Object[] |
Position: | 0 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | True |
-ShowError
通过管道发送错误。 此参数很少使用,但当你在 Format-Table
命令中设置表达式的格式时,可用作调试辅助,并且表达式似乎不起作用。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-View
指定备用表格式或视图的名称。 不能在同一命令中使用 属性 和 视图 参数。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Wrap
显示超过下一行列宽的文本。 默认情况下,超过列宽的文本将被截断。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
可以通过管道将任何对象传递给 Format-Table
。
输出
Microsoft.PowerShell.Commands.Internal.Format
Format-Table
返回表示表的格式对象。
备注
GroupBy 参数假定对象已排序。 使用 Format-Table
对对象进行分组之前,请使用 Sort-Object
cmdlet。
使用 View 参数可以指定表的备用格式。 可以使用 PowerShell 目录中 *.format.PS1XML
文件中定义的视图,也可以在新的 PS1XML 文件中创建自己的视图,然后使用 Update-FormatData
cmdlet 将其包含在 PowerShell 中。
View 参数的备用视图必须使用表格式,否则命令将失败。
如果备用视图是列表,请使用 Format-List
cmdlet。 如果备用视图既不是列表,也不是表,请使用 Format-Custom
cmdlet。