如下说明是翻译
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