[玩转系统] Format-Table (Microsoft.PowerShell.Utility)
作者:精品下载站 日期:2024-12-14 02:07:25 浏览:14 分类:玩电脑
Format-Table (Microsoft.PowerShell.Utility)
Format-Table
模块 :Microsoft.PowerShell.Utility将输出格式化为表格。
句法
Format-Table
[[-Property] <Object[]>]
[-AutoSize]
[-RepeatHeader]
[-HideTableHeaders]
[-Wrap]
[-GroupBy <Object>]
[-View <string>]
[-ShowError]
[-DisplayError]
[-Force]
[-Expand <string>]
[-InputObject <psobject>]
[<CommonParameters>]
描述
Format-Table
cmdlet 将命令的输出格式化为表格,其中每列中包含对象的选定属性。对象类型决定每列中显示的默认布局和属性。您可以使用属性参数来选择要显示的属性。
PowerShell 使用默认格式化程序来定义对象类型的显示方式。您可以使用 .ps1xml
文件创建自定义视图,以显示具有指定属性的输出表。创建自定义视图后,使用 View 参数显示带有自定义视图的表格。有关视图的更多信息,请参阅 about_Format.ps1xml。
您可以使用哈希表在显示对象之前将计算属性添加到对象中,并指定表中的列标题。要添加计算属性,请使用Property 或GroupBy 参数。有关哈希表的更多信息,请参阅 about_Hash_Tables。
示例
示例 1:格式化 PowerShell 主机
此示例在表中显示有关 PowerShell 主机程序的信息。
Get-Host | Format-Table -AutoSize
Get-Host
cmdlet 获取代表主机的System.Management.Automation.Internal.Host.InternalHost 对象。这些对象沿着管道发送到Format-Table
并显示在表格中。 AutoSize 参数调整列宽以最大程度地减少截断。
示例 2:按 BasePriority 格式化进程
在此示例中,进程显示在具有相同 BasePriority 属性的组中。
Get-Process | Sort-Object -Property BasePriority | Format-Table -GroupBy BasePriority -Wrap
Get-Process
cmdlet 获取代表计算机上每个进程的对象,并将它们沿着管道发送到 Sort-Object
。这些对象按照其 BasePriority 属性的顺序排序。
排序后的对象沿着管道发送到Format-Table
。 GroupBy 参数根据 BasePriority 属性的值将流程数据分组。 Wrap 参数可确保数据不会被截断。
示例 3:按开始日期格式化流程
此示例显示有关计算机上运行的进程的信息。对象已排序,Format-Table
使用视图按对象的开始日期对对象进行分组。
Get-Process | Sort-Object StartTime | Format-Table -View StartTime
Get-Process
获取代表计算机上运行的进程的System.Diagnostics.Process 对象。对象沿着管道发送到 Sort-Object
,并根据 StartTime 属性进行排序。
排序后的对象沿着管道发送到Format-Table
。 View 参数指定在 PowerShell DotNetTypes.format.ps1xml
文件中为 System.Diagnostics.Process对象。 StartTime 视图将每个进程的开始时间转换为短日期,然后按开始日期对进程进行分组。
DotNetTypes.format.ps1xml
文件包含进程的优先级视图。您可以使用自定义视图创建自己的 format.ps1xml
文件。
示例 4:使用自定义视图进行表输出
在此示例中,自定义视图显示目录的内容。自定义视图将 CreationTime 列添加到由 创建的 System.IO.DirectoryInfo 和 System.IO.FileInfo 对象的表输出中获取-ChildItem
。
本示例中的自定义视图是根据 PowerShell 源代码中定义的视图创建的。有关视图和用于创建此示例视图的代码的更多信息,请参阅 about_Format.ps1xml。
Get-ChildItem -Path C:\Test | Format-Table -View mygciview
Directory: C:\Test
Mode LastWriteTime CreationTime Length Name
---- ------------- ------------ ------ ----
d----- 11/4/2019 15:54 9/24/2019 15:54 Archives
d----- 8/27/2019 14:22 8/27/2019 14:22 Drawings
d----- 10/23/2019 09:38 2/25/2019 09:38 Files
-a---- 11/7/2019 11:07 11/7/2019 11:07 11345 Alias.txt
-a---- 2/27/2019 15:15 2/27/2019 15:15 258 alias_out.txt
-a---- 2/27/2019 15:16 2/27/2019 15:16 258 alias_out2.txt
Get-ChildItem
获取当前目录C:\Test
的内容。 System.IO.DirectoryInfo 和 System.IO.FileInfo 对象沿着管道发送。 Format-Table
使用 View 参数指定包含 CreationTime 列的自定义视图 mygciview。
Get-ChildItem
的默认 Format-Table
输出不包含 CreationTime 列。
示例 5:使用表输出的属性
此示例使用 Property 参数在两列表中显示计算机的所有服务,其中显示属性 Name 和 DependentServices。
Get-Service | Format-Table -Property Name, DependentServices
Get-Service
获取计算机上的所有服务,并将 System.ServiceProcess.ServiceController 对象沿着管道发送。 Format-Table
使用Property 参数指定在表中显示Name 和DependentServices 属性。
Name 和DependentServices 是对象类型的两个属性。要查看所有属性:Get-Service |获取成员-MemberType 属性
。
示例6:格式化进程并计算其运行时间
此示例显示一个表,其中包含本地计算机 notepad 进程的进程名称和总运行时间。总运行时间是通过当前时间减去每个进程的启动时间来计算的。
Get-Process notepad |
Format-Table ProcessName, @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}
ProcessName TotalRunningTime
----------- ----------------
notepad 03:20:00.2751767
notepad 00:00:16.7710520
Get-Process
获取本地计算机的所有 notepad 进程,并将对象发送到管道中。 Format-Table
显示一个包含两列的表:ProcessName(一个 Get-Process
属性)和 TotalRunningTime(一个计算的财产。
TotalRunningTime 属性由具有两个键的哈希表指定:Label 和 Expression。 Label 键指定属性名称。 表达式键指定计算。该表达式获取每个流程对象的 StartTime 属性,并从 Get-Date
命令的结果中减去该属性,从而获取当前日期和时间。
示例 7:格式化记事本进程
此示例使用 Get-CimInstance
获取本地计算机上所有 notepad 进程的运行时间。您可以将 Get-CimInstance
与 ComputerName 参数结合使用,从远程计算机获取信息。
$Processes = Get-CimInstance -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{
Label = "Total Running Time"
Expression={(Get-Date) - $_.CreationDate}
}
ProcessName Total Running Time
----------- ------------------
notepad.exe 03:39:39.6260693
notepad.exe 00:19:56.1376922
Get-CimInstance
获取 WMI Win32_Process 类的实例,该类描述名为 notepad.exe 的所有本地计算机进程。流程对象存储在$Processes
变量中。
$Processes
变量中的流程对象沿着管道发送到 Format-Table
,其中显示 ProcessName 属性和新的计算属性, 总运行时间。
该命令将新计算属性的名称总运行时间分配给标签键。 表达式键的脚本块通过从当前日期减去进程创建日期来计算进程已经运行了多长时间。 Get-Date
cmdlet 获取当前日期。从当前日期中减去创建日期。结果是总运行时间的值。
示例 8:格式错误故障排除
以下示例显示使用表达式添加 DisplayError 或 ShowError 参数的结果。
Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError
DayOfWeek $_ / $null
--------- ------------
Wednesday #ERR
Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError
DayOfWeek $_ / $null
--------- ------------
Wednesday
InvalidArgument: Failed to evaluate expression " $_ / $null ".
参数
-AutoSize
指示 cmdlet 根据数据宽度调整列大小和列数。默认情况下,列的大小和数量由视图决定。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-DisplayError
指示 cmdlet 在命令行上显示错误。当您在 Format-Table
命令中格式化表达式并需要对表达式进行故障排除时,此参数可用作调试辅助工具。
SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-Expand
指定集合对象和集合中对象的格式。此参数旨在格式化支持 ICollection (System.Collections) 接口的对象。默认值为EnumOnly。该参数可接受的值如下:
- EnumOnly:显示集合中对象的属性。
- CoreOnly:显示集合对象的属性。
- 两者:显示集合对象的属性以及集合中对象的属性。
String
接受的值:仅核心、仅枚举、两者
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Force
指示 cmdlet 指示 cmdlet 显示所有错误信息。与 DisplayError 或 ShowError 参数一起使用。默认情况下,当错误对象写入错误或显示流时,仅显示一些错误信息。
格式化某些 .NET 类型时也需要。有关详细信息,请参阅注释部分。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-GroupBy
指定基于属性值在单独的表中排序的输出。例如,您可以使用 GroupBy 根据服务的状态在单独的表中列出服务。
输入表达式或属性。 GroupBy 参数要求对对象进行排序。在使用 Format-Table
对对象进行分组之前,请使用 Sort-Object
cmdlet。
GroupBy 参数的值可以是新的计算属性。计算的属性可以是脚本块或哈希表。有效的键值对是:
- 名称(或标签)-
<string>
- 表达式 -
<string>
或<script; block>
- 格式字符串 -
<string>
有关详细信息,请参阅 about_Calculated_Properties。
类型 :目的
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-HideTableHeaders
省略表中的列标题。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-InputObject
指定要格式化的对象。输入包含对象的变量,或键入获取对象的命令或表达式。
类型 :PS对象
位置:命名
默认值:None
必需的:False
接受管道输入:True
接受通配符:False
-Property
指定显示中出现的对象属性及其出现的顺序。键入一个或多个属性名称(以逗号分隔),或使用哈希表显示计算属性。允许使用通配符。
如果省略此参数,则显示中显示的属性取决于第一个对象的属性。例如,如果第一个对象具有 PropertyA 和 PropertyB,但后续对象具有 PropertyA、PropertyB 和 >PropertyC,则仅显示 PropertyA 和 PropertyB 标题。
属性参数是可选的。您不能在同一命令中使用属性和查看参数。
Property 参数的值可以是新的计算属性。计算的属性可以是脚本块或哈希表。有效的键值对是:
- 名称(或标签)
<string>
- 表达式 -
<string>
或<script; block>
- 格式字符串 -
<string>
- 宽度 -
<int32>
- 必须大于0
- 对齐方式 - 值可以是
Left
、Center
或Right
有关详细信息,请参阅 about_Calculated_Properties。
类型 :Object[]
位置:0
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-RepeatHeader
每次屏幕填满后重复显示表格标题。当输出通过管道传输到寻呼机(例如 less
或 more
)或使用屏幕阅读器寻呼时,重复标头非常有用。
SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-ShowError
该参数通过管道发送错误。当您在 Format-Table
命令中格式化表达式并需要对表达式进行故障排除时,此参数可用作调试辅助工具。
SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-View
从 PowerShell 6 开始,默认视图在 PowerShell C#
源代码中定义。 PowerShell 5.1 及更早版本中的 *.format.ps1xml
文件在 PowerShell 6 及更高版本中不存在。
View 参数允许您指定表格的备用格式或自定义视图。您可以使用默认的 PowerShell 视图或创建自定义视图。有关如何创建自定义视图的详细信息,请参阅 about_Format.ps1xml。
View 参数的备用视图和自定义视图必须使用表格格式,否则 Format-Table
会失败。如果备用视图是列表,请使用 Format-List
cmdlet。如果备用视图不是列表或表格,请使用 Format-Custom
cmdlet。
您不能在同一命令中使用属性和查看参数。
类型 :String
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Wrap
在下一行显示超出列宽的文本。默认情况下,超过列宽的文本将被截断。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
输入
PSObject
您可以通过管道将任何对象传递给此 cmdlet。
输出
Microsoft.PowerShell.Commands.Internal.Format
此 cmdlet 返回表示表的格式对象。
笔记
PowerShell 包含以下 Format-Table
别名:
所有平台:
ft
PowerShell 7.2 引入了对输出进行着色的新功能。可以使用 $PSStyle
自动变量来管理颜色。 $PSStyle.Formatting.TableHeader
属性定义用于 Format-Table
显示的表格标题的颜色。有关此设置的更多信息,请参阅 about_ANSI_Terminals。
如果要将 Format-Table
与 Property 参数一起使用,则需要在以下任一条件下包含 Force 参数:
输入对象通常使用
ToString()
方法进行带外格式化。这适用于[string]
和 .NET 基元类型,它们是内置数字类型的超集,例如[int]
、[long]
等。输入对象没有公共属性。
输入对象是 PowerShell 用于除 Success 输出流之外的输出流的包装器类型的实例。仅当这些包装器类型发送到成功输出流时,这才适用,该输出流需要首先通过 ErrorVariable 等通用参数捕获它们,或者使用
*>&1
等重定向。 。包装器类型包括:
- 系统.管理.自动化.错误记录
- 系统.管理.自动化.警告记录
- 系统.管理.自动化.详细记录
- 系统.管理.自动化.调试记录
- 系统.管理.自动化.信息记录
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag