如下说明是翻译PowerShell中: help Format-Table 产生的帮助信息.
译者: Edengundam(马涛)
Format-Table
摘要
将输出格式化为表格形式.
语法
Format-Table [[-property] <Object[]>] [-autosize] [-hideTableHeaders] [-groupBy <Object>] [-wrap] [-view <string>] [-force] [-inputObject <psobject>] [-expand <string>] [-displayError] [-showError] [<CommonParameters>]
详细描述
Format-Table cmdlet将命令产生的输出格式化表格形式, 每个选择的对象属性显示在一列. 对象的类型决定默认的布局和在每列显示的属性, 然而你可以使用参数Property选择你想查看的属性.
你还可以在显示信息之前, 使用Format-Table向对象中添加动态计算的属性. 要完成这个操作, 你需要为参数Property指定一个哈希表. 哈希表包含了两个键: Label和Expression. 将动态计算的属性名称存储在Label键中. 在Expression键中保存用于求值和确定属性值的代码块.
参数
-property <Object[]>
指定要在屏幕上显示的对象属性及其显示顺序. 允许使用通配符.
如果你忽略此参数, 屏幕上显示的属性将会根据需要显示的对象决定. 参数名称("-Property")为可选项. 你不能在同一个命令中同时使用Property和View参数.
强制参数?
|
false
|
参数位置?
|
1
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-autosize <SwitchParameter>
根据数据的宽度调整列尺寸和列数. 默认情况下, 列尺寸和列数通过视图确定. 你不能在同一个命令中同时使用Autosize和Column参数.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
False
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-hideTableHeaders <SwitchParameter>
省略表中列标题.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
False
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-groupBy <Object>
根据共享的属性或值将输出结果进行分组. 输入一个表达式或输出的属性.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-wrap <SwitchParameter>
在下一行继续显示超出列宽度的文本. 默认情况下, 超出列宽度的文本将被截断.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
False
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-view <string>
指定其他的表格式(或视图). 你不能在同一个命令中同时使用Property和View参数.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-force <SwitchParameter>
在不破坏安全前提下, 能够避免影响命令成功执行的限制条件. 例如: Force参数能够覆盖具有只读属性的文件或创建路径中的必要成分, 但是不会改变人和文件的权限.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-inputObject <psobject>
指定需要格式化的对象. 输入一个包含对象的变量, 或者一个能够产生对象的命令或表达式.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
true (根据值)
|
允许通配符扩展?
|
false
|
-expand <string>
格式化集合和集合中元素. 设计此参数用于格式化那些支持ICollection(System.Collections)接口的对象.
合法取值:
· Enum (默认): 显示集合中元素的属性.
· Core: 显示集合对象的属性.
· Both: 显示集合和集合中元素的属性.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-displayError <SwitchParameter>
在命令行上显示错误.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-showError <SwitchParameter>
通过管道发送错误.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
<公共参数>
此命令支持公共参数: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable. 更多信息, 输入, "get-help about_commonparameters".
输入类型
Object
返回类型
Formatted objects
注意
更多信息, 输入"Get-Help Format-Table -detailed". 需要技术信息, 输入"Get-Help Format-Table -full".
如果需要为该命令提供多个参数, 请使用逗号进行分隔. 例如: "<parameter-name> <value1>, <value2>".
你可以使用Format-Table内建别名"FT". 需要更多信息, 查看About_Alias.
参数-Groupby假设对象已经排序. 在使用Format-Custom对对象进行分组前, 使用Sort-Object将它们排序.
参数-View允许您指定表的可选格式. 你可以使用定义在Windows PowerShell目录中*.format.PS1XML文件中的格式, 或者创建属于你自己的PS1XML文件, 并使用Update-FormatData cmdlet将它们添加到Windows PowerShell中.
参数View使用的可选视图必须是表格式; 如果不是, 命令将会执行失败. 如果可选视图为列表, 使用Format-List. 如果可选视图既不是列表也不是表, 使用Format-Custom.
你可以使用Format-Table为对象添加动态计算的属性. 你还可以通过使用Add-Member或Select-Object命令为对象添加动态计算的属性. 更多细节, 请查看这些cmdlet的帮助.
例1
C:/PS>get-pssnapin | format-table -auto
此命令将Windows PowerShell管理单元的相关信息格式化为表格. 默认情况下, 它们被格式化为列表. Get-PsSnapin cmdlets取得表示管理单元的对象. 管道运算符(|)将对象发送给Format-Table命令. Format-Table将对象格式化为表格. 参数Autosize调整列表, 尽量避免截断的信息.
例2
C:/PS>get-process | format-table -groupby basepriority -wrap
此命令根据优先级的类别将本机进程进行分组. Get-Process cmdlets取得表示计算机上每个进程的对象. 管道运算符(|)将对象发送给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被用来选择定义在DotNetTypes.format.ps1xml文件中的StartTime视图, 此视图是用来格式化System.Diagnostics.Process对象(例如命令Get-Process返回的对象). 此视图将进程的StartTime属性转化成短日期(只包含年月日), 并根据启动日期进行分组.
DotNetTypes.format.ps1xml还包括了关于进程的优先级视图, 你还能创建自己的format.ps1xml文件来自定义视图.
例4
C:/PS>get-service | format-table -property Name, DependentServices
此命令将计算机上所有的服务显示在一个两列的表格中(列名称: "Name"和"DependentServices"). 此命令使用Get-Service cmdlet取得计算机上所有的服务. 管道运算符(|)将结果发送给Format-Table cmdlet, 后者将它们格式化, 并输出为表格形式. 参数Property指定了作为表格中列的属性. 参数Property的名称为可选项, 所以你可以简单省略它("format-table Name, DependentServices").
Name和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键中保存用于求值和确定属性值的代码块. 这里的表达式通过Get-Date命令取得当前日期减去每个进程对象的StartTime属性值.
例6
C:/PS>$processes = get-wmiobject -ComputerName Server01 `
win32_process -filter "name='notepad.exe'"
$processes | format-table ProcessName, @{ Label = "Total Running Time"; `
Expression={(get-date) - $_.ConvertToDateTime($_.CreationDate)}}
此命令类似前一个命令, 但是此命令使用了Get-WmiObject cmdlet以及Win32_Processes类来显示一个远程计算机上Notepad进程的信息.
此命令使用Get-WmiObject cmdlet取得Win32_Process WMI类的实例, 它描述了计算机Server01上所有名为Notepad.exe的进程. 此命令将进程的信息存储在变量$processes中. 管道运算符(|)将存储在$processes变量中的进程信息发送给Format-Table cmdlet, 后者显示每个进程的进程名称以及一个新的动态计算属性.
新的动态创建属性名称为"Total Running Time", 它被赋予给"Label"键. 脚本块被赋予给Expression键, 它通过当前时间减去进程创建时间来计算进程已经运行的时间. Get-Date cmdlet取得当前时间. ConvertToDateTime方法将Win32_process对象的CreationDate属性, 从WMI CIM_DATETIME对象转换为一个.NET DateTime对象, 后者可以用来与Get-Date的输出进行比较. 接下来, 用当前时间减去被转换的进程创建时间. 结果就是"Total Running Time"的值.
反引号符号(`)是行继续字符.
相关链接
Format-Custom
Format-List
Format-Wide
Out-Host
Out-File