PowerShell在很大程度上帮助开发者,但它无法读取你的思想。它不能本能地知道你想要什么样的输出。它会通过默认格式提供最佳猜测,但最终你要决定如何返回输出。使用PowerShell的Format-Table命令,你可以调整输出以满足你的需求。
PowerShell拥有一个格式化系统,它具有默认输出和根据对象类型改变输出格式的能力。如果你不想学习XML以及如何始终以特定方式格式化输出,你还可以使用像Powershell format-table、Format-List
和Format-Wide
这样的命令。文件系统中的PS1XML文件或使用任何格式命令都可以以一些不同的方式显示输出。
如果不使用任何特殊格式,PowerShell默认使用它的格式。当返回特定对象时,你可能只会看到实际对象内容的有限部分。例如,只查看单个文件夹,你只会看到父目录和一些属性。
但是,将相同的命令传递给Select-Object -Property *
,看看会发生什么。
PowerShell通常会对你隐藏对象的许多属性,因为通常情况下,你不需要看到所有这些信息。PowerShell提供了一个默认视图,但这并不意味着这是你唯一的选择。我们可以通过格式化命令改变这个视图。
最受欢迎的格式化命令是Format-Table
。根据PowerShell的帮助:
Format-Table命令将命令的输出格式化为表格,每列显示对象的选定属性。对象类型确定了每列中显示的默认布局和属性,但你可以使用Property参数选择要查看的属性。
你还可以使用哈希表在显示之前向对象添加计算属性,并在表格中指定列标题。要添加计算属性,请使用Property或GroupBy参数。
使用Powershell的Format-Table和Select-Object
挑选个别对象属性似乎是一样的,只要属性值不超过当前控制台的宽度。但是,一旦你尝试显示大量对象,你会发现Format-Table
会保持表格格式,而Select-Object
会回到在每行显示属性的方式。
PowerShell的Format-Table输出将始终尝试以表格格式显示信息。如果属性值过长而无法显示,它将用省略号替换任何丢失的文本,以指示还有更多信息可用,只是没有显示出来。
Format-Table
cmdlet 有许多不同的方法可以操作输出。通过微软文档查看Format-Table
的完整文档。
Source:
https://adamtheautomator.com/powershell-format-table/