如何在 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 脚本更有效和用户友好。
