当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 学习 PowerShell 格式表 Cmdlet

作者:精品下载站 日期:2024-12-14 12:38:29 浏览:13 分类:玩电脑

学习 PowerShell 格式表 Cmdlet


PowerShell 在很大程度上掌握了开发人员的手,但它无法读懂您的想法。它本质上无法知道您正在寻找什么样的输出。它将通过默认格式提供最佳猜测,但最终由您决定如何返回输出。使用 PowerShell Format-Table cmdlet,您可以根据自己的喜好调整输出。

PowerShell 具有一个格式化系统,该系统具有默认输出,并且能够根据对象类型更改输出的格式化方式。如果您不想了解 XML 以及如何始终以特定方式格式化输出,您还可以使用 Powershell format-table、Format-ListFormat-Wide 等 cmdlet 任您支配。文件系统上的 PS1XML 文件或使用任何格式 cmdlet 都会以某些不同的方式显示输出。

在不使用任何特殊格式的情况下,PowerShell 默认情况下使用其格式。每当返回特定对象时,您可能只会看到该实际对象内容的有限部分。例如,仅查看单个文件夹,您只会看到父目录和一些属性。

PS> Get-Item -Path C:\Windows\

Directory: C:\
Mode	LastWriteTime		Length	Name
---- 	------------- 		------	----

d-----	11/24/2017 9:57 AM 			Windows

但是,将相同的命令通过管道传递给 Select-Object -Property * 并查看会发生什么。

PS> Get-Item -Path C:\Windows\ | Select-Object -Property *

PSPath 				: Microsoft.PowerShell.Core\FileSystem::C:\Windows\
PSParentPath 		: Microsoft.PowerShell.Core\FileSystem::C:\
PSChildName 		: Windows
PSDrive				: C
PSProvider 			: Microsoft.PowerShell.Core\FileSystem
PSIsContainer 		: True
Mode 				: d-----
BaseName 			: Windows
Target 				: {C:\Windows}
LinkType 			:
Name 				: Windows
FullName 			: C:\Windows\
Parent 				:
Exists 				: True
Root 				: C:\
Extension 			:
CreationTime 		: 3/18/2017 5:40:20 AM
CreationTimeUtc 	: 3/18/2017 11:40:20 AM
LastAccessTime 		: 11/24/2017 9:57:51 AM
LastAccessTimeUtc	: 11/24/2017 3:57:51 PM
LastWriteTime 		: 11/24/2017 9:57:51 AM
LastWriteTimeUtc 	: 11/24/2017 3:57:51 PM
Attributes 			: Directory

PowerShell 向您隐藏了许多对象的属性,因为通常您不需要查看所有这些信息。 PowerShell 提供了默认视图,但这并不意味着这是您唯一的选择。我们可以通过 Format cmdlet 更改此视图。

最流行的格式化 cmdlet 是Format-Table。根据PowerShell帮助:

Format-Table cmdlet 将命令的输出格式化为表格,其中每列中包含对象的选定属性。对象类型决定了每列中显示的默认布局和属性,但您可以使用 Property 参数来选择您想要查看的属性。

您还可以使用哈希表在显示对象之前将计算属性添加到对象中,并指定表中的列标题。要添加计算属性,请使用 Property 或 GroupBy 参数。

只要属性值不超出当前控制台的宽度,使用 Powershell Format-Table 和 Select-Object 来挑选单个对象属性似乎是相同的。但是,一旦您尝试显示大量对象,您就会发现 Format-Table 坚持使用表格格式,而 Select-Object 则恢复为显示属性每行。

PS> Get-Item -Path C:\Windows\ | Select-Object -Property LastAccessTime,Name,LastWriteTime,PSProvider,CreationTime

LastAccessTime 	: 11/24/2017 9:57:51 AM
Name 			: Windows
LastWriteTime 	: 11/24/2017 9:57:51 AM
PSProvider 		: Microsoft.PowerShell.Core\FileSystem
CreationTime 	: 3/18/2017 5:40:20 AM

PS> Get-Item -Path C:\Windows\ | Format-Table -Property LastAccessTime,Name,LastWriteTime,PSProvider,CreationTime

LastAccessTime			Name	LastWriteTime			PSProvider	CreationTime
-------------- 			---- 	------------- 			---------- 	------------
11/24/2017 9:57:51 AM 	Windows 11/24/2017 9:57:51 AM	Microsoft.PowerShell.Core\FileSystem	3/18/2017 5:40:20 AM

Powershell Format-Table 输出将始终尝试通过表格格式显示信息。如果属性值太长而无法显示,它将用省略号替换任何缺失的文本,以指示有更多信息可用,但只是未显示。

Format-Table cmdlet 有很多不同的方式来操作输出。通过 Microsoft 文档查看 Format-Table 的完整文档。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯