我正在嘗試使用 PSCustomObject 將兩個陣列中的值組合到一個表中。
一個陣列有密碼,一個陣列有用戶。
當我嘗試將它們組合到 PSCustomObject 陣列中時,它只列出陣列中的最后一個值,而不是串列。
我嘗試了幾個不同的版本:
for ($i = 0; $i -lt $users.Length; $i ) {$myObject = [PSCustomObject] @{name = $users.name[$i]; User = $users.samaccountname[$i]; Mail = $users.mail[$i]; Password = $passwords[$i]}}
和
foreach ($psw in $passwords) {$users | % {$myObject = [PSCustomObject] @{name = $PSItem.name; User = $PSItem.samaccountname; Mail = $PSItem.mail; Password = $psw}}}
當我嘗試使用 =它$myobject時會出現錯誤:
方法呼叫失敗,因為 [System.Management.Automation.PSObject] 不包含名為“op_Addition”的方法。
任何想法我做錯了什么?
uj5u.com熱心網友回復:
而不是使用 =,只需將回圈中的所有輸出分配給一個變數(另請注意,您可能想要索引$users而不是您從中獲得的合成集合$users.name等 - 否則如果任何屬性包含它會中斷多個值):
$myObjects =
for ($i = 0; $i -lt $users.Length; $i ) {
[PSCustomObject] @{
Name = $users[$i].name
User = $users[$i].samaccountname
Mail = $users[$i].mail
Password = $passwords[$i]
}
}
uj5u.com熱心網友回復:
使用 =on時出現的錯誤$myobject是因為$myobject是自定義型別(沒有實作 'op_Addition' 方法)。
您可以使用實作此方法的物件,例如 ArrayList,如下所示:
$myObject = New-Object -TypeName "System.Collections.ArrayList"
for ($i = 0; $i -lt $users.Length; $i ) {
$myObject = [PSCustomObject] @{
Name = $users[$i].name
User = $users[$i].samaccountname
Mail = $users[$i].mail
Password = $passwords[$i]
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/420898.html
標籤:
下一篇:用其父類的實體構造一個子類
