如何在 PowerShell foreach 並行迴圈中使用 PSCustomObject?
要在 Foreach 並行迴圈中使用 PSCustomObject,首先需要考慮如何使用迴圈內的變數。
$Out = "PowerShell"
ForEach-Object -Parallel{
Write-Output "Hello.... $($using:Out)"
}因此,讓我們看看能否在 $out 變數中儲存或更改一個值。
示例
$Out = @()
ForEach-Object -Parallel{
$using:out = "Azure"
Write-Output "Hello....$($using:out) "
}輸出
Line | 4 | $using:out = "Azure" | ~~~~~~~~~~ | The assignment expression is not valid. The input to an assignment operator must be an object that is able to accept | assignments, such as a variable or a property.
錯誤提示表達無效,所以我們無法直接操作變數。所以我們可以使用另一個方法,為其建立一個臨時變數。
$Out = @()
ForEach-Object -Parallel{
$dict = $using:out
$dict = "Azure"
Write-Output "Hello....$dict"
}同樣地,我們可以使用,如下所示所示的臨時變數 PSCustomObject。
示例
$Out = @()
$vms = "Testvm1","Testvm2","Testvm3"
$vmout = $vms | ForEach-Object -Parallel{
$dict = $using:out
$dict += [PSCustomObject]@{
VMName = $_
Location = 'EastUS'
}
return $dict
}
Write-Output "VM Output"
$vmout輸出
VMName Location ------ -------- Testvm1 EastUS Testvm2 EastUS Testvm3 EastUS
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP