如何在 PowerShell 中创建表格

以清晰和结构化的方式组织和展示数据至关重要,而表格是一种被广泛认可的实现这种目标的格式。在 PowerShell 中,与任何编程语言一样,创建表格的能力是基本的。
在 PowerShell 中创建自定义表格是一个简单的过程。本文探索了在 PowerShell 中创建表格的不同方法,使数据展示更有效。
使用哈希表在 PowerShell 中创建表格
哈希表是一种紧凑的数据结构,它使用键存储每个值。它也被称为字典或关联数组。
在 PowerShell 中,您可以使用 @{}
语法创建哈希表。键和值被包含在花括号 {}
中。
代码:
$hash = @{Name = "brian"; Age = "23"; Location = "UK" }
在上面的代码中,使用 @
符号后跟花括号 { }
创建哈希表。在花括号内,我们有三个用分号分隔的键值对。
每个键是一个字符串(Name
、Age
、Location
),后面跟着一个等号(=
)和相应的值。
因此,这一行创建了一个具有以下键值对的哈希表:
- 键
Name
的值为"brian"
。 - 键
Age
的值为"23"
。 - 键
Location
的值为"UK"
。
使用变量 $hash
显示哈希表的内容。
$hash
输出:
Name Value
---- -----
Name brian
Age 23
Location UK
哈希表以表格格式显示,具有一列用于键,另一列用于值。
然而,值得注意的是,哈希表仅限于显示两列:一列用于键,一列用于值。如果您的需求涉及更多列或具有不同名称的列,则哈希表可能不是最有效的选择。
使用 DataTable
对象在 PowerShell 中创建表格
DataTable
对象在 PowerShell 中处理表格时非常有用。您可以使用命令 New-Object System.Data.Datatable
创建 DataTable
。
您可以使用 $TableName.Columns.Add("ColumnNames")
添加列,并使用 $TableName.Rows.Add("ValueToColumns")
添加表格中的行。
在以下示例中,我们从 System.Data.DataTable
类创建了一个新的 DataTable
($table
) 对象。
然后,我们向 DataTable
($table
) 对象添加三列和三行。[void]
用于抑制这些命令的输出。
最后,我们使用变量 $table
显示 DataTable
对象的内容。
代码:
$table = New-Object System.Data.DataTable
[void]$table.Columns.Add("Name")
[void]$table.Columns.Add("Age")
[void]$table.Columns.Add("Location")
[void]$table.Rows.Add("brian", "23", "UK")
[void]$table.Rows.Add("sam", "32", "Canada")
[void]$table.Rows.Add("eric", "25", "USA")
$table
输出:
Name Age Location
---- --- --------
brian 23 UK
sam 32 Canada
eric 25 USA
在输出中,您将看到使用 DataTable
对象生成的表格。虽然这种方法允许您创建具有多个列和自定义列名的表格,但您必须手动添加列和相应的值。
使用 Format-Table
在 PowerShell 中创建表格
您可以使用 Format-Table
cmdlet 将数据格式化并显示为控制台中的表格。虽然它不会创建表格对象,但对于以表格格式在控制台中呈现数据很有用。
代码:
Get-Process | Format-Table -Property Name, Id, CPU
在上面的示例中,我们使用 Get-Process
检索有关正在运行的进程的信息。Get-Process
的输出是正在运行的进程列表。
然后,我们将 Get-Process
的输出传递给 Format-Table
cmdlet 进行格式化。我们想以表格格式显示每个进程的特定属性。
接下来,我们使用 -Property
参数指定要包含在表格中的属性。在这种情况下,我们想包括 Name
、Id
和 CPU
属性。
输出:
Name Id CPU
---- -- ---
ACCStd 4084 11.15625
ACCSvc 2620
amdfendrsr 2596
AMDRSServ 10772 47.6875
输出显示有关正在运行的进程的信息。每一行代表一个不同的进程。
请注意,并非所有进程在 CPU
列中都有值。一些进程可能没有占用 CPU 资源,因此它们的 CPU
列在输出中保持为空。
结论
在 PowerShell 中创建表格既简单又多功能,满足各种数据展示需求。您可以选择哈希表用于基本的键值对,使用 DataTable
对象用于具有多个列和自定义名称的高级表格,使用 Format-Table
cmdlet 在控制台中整齐地显示数据。
这些方法使您能够增强数据的可读性和组织性,从而使您的 PowerShell 脚本更有效和用户友好。