Format-Table 帮助信息

如下说明是翻译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指定一个哈希表. 哈希表包含了两个键: LabelExpression. 将动态计算的属性名称存储在Label键中. Expression键中保存用于求值和确定属性值的代码块.
 
参数
 
-property <Object[]>
指定要在屏幕上显示的对象属性及其显示顺序. 允许使用通配符
 
如果你忽略此参数, 屏幕上显示的属性将会根据需要显示的对象决定. 参数名称("-Property")为可选项. 你不能在同一个命令中同时使用PropertyView参数.
 
强制参数?
false
参数位置?
1
默认值
 
允许从管道绑定输入?
false
允许通配符扩展?
false
 
-autosize <SwitchParameter>
根据数据的宽度调整列尺寸和列数. 默认情况下, 列尺寸和列数通过视图确定. 你不能在同一个命令中同时使用AutosizeColumn参数.
 
强制参数?
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>
指定其他的表格式(或视图). 你不能在同一个命令中同时使用PropertyView参数.
 
强制参数?
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-MemberSelect-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").
 
NameDependentServices只是服务对象的两个属性而已. 要查看服务对象的所有属性, 键入"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
 
<think>嗯,用户想了解如何使用PowerShellFormat-Table命令。好的,我需要先回忆一下这个命令的基本用法和常见参数。首先,Format-Table是用于格式化输出为表格形式的cmdlet,通常用于让数据更易读。 接下来,我应该考虑用户可能的应用场景。他们可能是在处理对象属性较多时,希望只显示部分列,或者调整列宽和排序。需要覆盖常用参数,比如-Property、-AutoSize、-Wrap等。 还要注意,用户可能对默认行为不太清楚,比如默认显示哪些属性。需要解释如果不指定属性,PowerShell会自动选择部分属性显示,这可能导致信息不全,所以显式指定属性更可靠。 另外,用户可能遇到长文本被截断的问题,这时候需要介绍-Wrap参数来换行显示。同时,结合其他命令比如Select-Object,可以进一步筛选属性,再通过管道传递给Format-Table,形成流畅的工作流程。 可能还需要提醒用户,Format-Table通常在管道的最后阶段使用,因为格式化命令会改变对象类型,影响后续处理。举个例子,比如获取进程后格式化,这样用户能更直观地理解。 还要检查是否有常见的错误用法,比如忘记使用-AutoSize导致列宽不合适,或者属性名拼写错误。给出示例时,确保命令正确,比如Get-Process | Format-Table -Property Name, Id, CPU -AutoSize。 最后,总结使用场景和注意事项,帮助用户快速掌握关键点。可能需要分步骤说明,从基本用法到高级技巧,让不同水平的用户都能有所收获。</think>好的,下面分步骤为您讲解PowerShell中`Format-Table`命令的用法: **1. 基础用法** ```powershell Get-Process | Format-Table ``` 默认显示进程对象的`Name`,`NPM`,`PM`,`WS`,`CPU(s)`和`Id`属性(PowerShell自动选择部分属性) **2. 指定显示列** ```powershell Get-Process | Format-Table -Property Name, Id, CPU, WorkingSet ``` 使用`-Property`参数精确控制显示的属性列及其顺序 **3. 自动调整列宽** ```powershell Get-Service | Format-Table -Property Name, Status, DisplayName -AutoSize ``` 添加`-AutoSize`参数后,列宽会根据内容自动调整(特别适合处理长文本) **4. 处理长内容换行** ```powershell Get-ChildItem | Format-Table Name, Length, LastWriteTime -Wrap ``` 使用`-Wrap`参数让超长内容自动换行显示(而不是被截断) **5. 自定义列标题** ```powershell Get-Process | Format-Table @{Name="进程名";Expression={$_.Name}}, @{Label="内存(MB)";Expression={[math]::Round($_.WS/1MB,2)}} ``` 通过哈希表创建计算属性,实现: - 自定义列标题(Name/Label) - 数据格式转换(内存单位转换) - 数值舍入处理 **6. 组合使用技巧** ```powershell Get-Service | Where-Object Status -eq 'Running' | Select-Object Name, DisplayName, Status | Sort-Object DisplayName | Format-Table -AutoSize -Wrap ``` 典型管道组合: 1. 过滤运行中的服务 2. 选择特定属性 3. 按显示名称排序 4. 格式化表格输出 **注意事项:** 1. 格式化命令应放在管道末端(会破坏原始对象结构) 2. 优先使用`Select-Object`过滤属性,再配合`Format-Table` 3. 处理大量数据时建议先筛选再格式化 4. 可通过`-GroupBy`参数实现分组显示(适合分类数据) **高级示例:** ```powershell Get-EventLog -LogName System -Newest 20 | Format-Table @{n="时间";e={$_.TimeWritten.ToString("yyyy-MM-dd HH:mm")}}, @{n="类型";e={$_.EntryType}}, @{n="来源";e={$_.Source}}, @{n="消息";e={$_.Message -replace '\n',' '}} -AutoSize -Wrap ``` 实现: - 自定义时间格式 - 简化列标题 - 替换换行符 - 自动调整列宽 - 长消息换行显示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值