如何在 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
哈希表以表格格式顯示,具有一列用於鍵,另一列用於值。
不過,值得注意的是,哈希表僅限於顯示兩列:一列用於鍵,一列用於值。如果您的需求涉及更多列或不同名稱的列,哈希表可能不是最有效的選擇。
在 PowerShell 中使用 DataTable
物件創建表格
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
物件生成的表格。雖然這種方法允許您創建具有多列和自定義列名稱的表格,但您必須手動添加列及其對應的值。
在 PowerShell 中使用 Format-Table
創建表格
您可以使用 Format-Table
命令來格式化並在控制台中以表格形式顯示數據。雖然它不創建表格物件,但在控制台中以表格格式呈現數據是很有用的。
代碼:
Get-Process | Format-Table -Property Name, Id, CPU
在上述示例中,我們使用 Get-Process
獲取有關正在運行的進程的信息。Get-Process
的輸出是一個正在運行的進程列表。
然後,我們將 Get-Process
的輸出通過管道傳遞到 Format-Table
命令以進行格式化。我們希望以表格格式顯示每個進程的特定屬性。
接下來,我們使用 -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
命令在控制台中整齊顯示數據。
這些方法使您能夠增強數據的可讀性和組織性,最終使您的 PowerShell 腳本更加有效且用戶友好。