在 PowerShell 中初始化自定義物件陣列
- 在 Windows PowerShell 中使用陣列
- 在 Windows PowerShell 中訪問陣列
- 使用 Windows PowerShell 更改陣列中的專案
- 在 Windows PowerShell 中迭代陣列
- 使用 Windows PowerShell 在陣列中建立物件
- 使用 Windows PowerShell 訪問陣列中的物件
- 使用 Windows PowerShell 更新陣列中的物件
- 使用 Windows PowerShell 訪問陣列中的屬性
- 在 Windows PowerShell 中建立 ArrayList
陣列是 Windows PowerShell 的一項基本功能。這些使得攝取、操作和輸出準確的資料結構(而不僅僅是原始字串)成為可能。
此功能使 PowerShell 與其他指令碼語言不同且更實用。
本文將解釋什麼是陣列,如何在 Windows PowerShell 中建立陣列,然後使用基本函式來操作它們。
在 Windows PowerShell 中使用陣列
Windows PowerShell 中的陣列可以包含一項或多項。陣列可以是字串、整數、物件或其他陣列。
每個專案都有一個從 0 開始並按專案迭代的索引。
建立陣列的基本語法是@()
。
$data = @()
我們可以將值放在@
之後的括號內:
$data = @('Zero','One','Two','Three')
要顯示陣列中的專案,我們可以呼叫命名變數:
$data
輸出:
Zero
One
Two
Three
在 Windows PowerShell 中訪問陣列
現在我們有了一個陣列,我們將要訪問專案。有幾種方法可以做到這一點。
第一種方法是使用陣列中專案的索引。正如我們已經提到的,索引從 0
開始。
因此,我們需要告訴 Windows PowerShell 檢視分配索引為零的項,以檢索陣列中的第一項。
$data[0]
此語法將返回字串 zero
,因為這是我們放入陣列中的第一個字串。我們還可以通過在同一命令中放置更多索引來擴充套件此程式碼段以從同一陣列返回多個專案。
$data[0,2,3]
輸出:
Zero
Two
Three
使用 Windows PowerShell 更改陣列中的專案
我們可以使用相同的方法來更新陣列中的專案。例如,要更新分配索引為 2 的專案,我們可以執行:
$data[2] = 'second'
此方法使我們可以直接訪問陣列中的專案。
在 Windows PowerShell 中迭代陣列
Windows PowerShell 最強大的功能之一是對陣列中的所有專案執行相同的操作。最基本的方法是使用管道字元(|
)。
例如,要為陣列中的每個專案新增描述,我們可以使用以下命令:
$data | ForEach-Object {"Item: [$PSItem]"}
此命令告訴 PowerShell 指令碼環境一次獲取一個 $data
陣列中的專案。
使用 Windows PowerShell 在陣列中建立物件
我們可以使用陣列 (@()
) 函式使用與字串相同的方法建立一個充滿自定義物件的陣列。例如,要製作員工測試列表,我們可以使用:
$data = @(
[pscustomobject]@{FirstName='Kevin';LastName='Marquette'}
[pscustomobject]@{FirstName='John'; LastName='Doe'}
)
當你為它們分配一個變數以使用時,大多數 PowerShell 本機命令將返回一個包含此型別物件的陣列。
使用 Windows PowerShell 訪問陣列中的物件
我們之前執行的訪問單個資料的過程同樣可以用於包含物件的陣列。
$data[0]
輸出:
FirstName LastName
----- ----
John Hampton
或者,我們可以通過指定要在同一命令中呼叫的屬性來獲取單個物件的屬性。
$data[0].FirstName
輸出:
John
使用 Windows PowerShell 更新陣列中的物件
確切的語法允許我們更新儲存在陣列中的物件中的各個屬性。
$data[0].FirstName = 'Jay'
使用 Windows PowerShell 訪問陣列中的屬性
在大多數程式設計和指令碼語言中,我們必須使用迭代方法來訪問各種物件中的所有屬性。我們也可以在 Windows PowerShell 中執行此操作。
$data | ForEach-Object {$_.LastName}
此方法將返回我們陣列中所有 LastName
屬性的列表,但每次你想檢視此資料時都編寫起來計算量大且具有挑戰性。因此,PowerShell 有一個快捷方式。
$data.LastName
你將看到相同的列表。PowerShell 像以前一樣依次獲取每個物件,但它向我們隱藏了這種複雜性。
在 Windows PowerShell 中建立 ArrayList
將專案新增到陣列可能具有挑戰性。但是,ArrayList 處理得更優雅,是一種不同型別的集合。
但是,我們將不得不使用 .NET 框架來使用這種型別的集合。要建立 ArrayList 並向其中新增專案,請執行以下命令:
$myarray = [System.Collections.ArrayList]::new()
[void]$myArray.Add('Value')
在這裡,我們可以呼叫預設的 .NET 建構函式來建立一個新的 ArrayList,然後使用 Add
運算子向其中新增專案。
[void]
資料型別之所以存在,是因為有時這些命令會丟擲可能與程式碼混淆的奇怪輸出。
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn