[英]Looping through 2D array | Powershell
我正在嘗試制作一個腳本,讓我一次從數組/列表中為多個 azure 用戶添加 phonenumber 2factor。
我認為二維數組可能是一個不錯的解決方案。 然后遍歷數組並在列表中添加每個人的號碼。
然而,powersehell 不是我的事。 所以我不能讓它繼續下去。
因此,如果有人可以幫助我如何制作 2 數組,以及如何在數組中獲取每個嵌套數組。
下面是我想工作的“草圖”。
$name = [
["name-01@email.com","+1 12345678"],
["name-02@email.com","+1 12345678"],
["name-03@email.com","+1 12345678"],
["name-04@email.com","+1 12345678"],
["name-05@email.com","+1 12345678"],
["name-06@email.com","+1 12345678"],
["name-07@email.com","+1 12345678"],
["name-08@email.com","+1 12345678"],
["name-09@email.com","+1 12345678"],
["name-10@email.com","+1 12345678"]
]
波紋管是我用來添加屬於 email 的號碼的命令。
foreach ($i in $name) {
New-MgUserAuthenticationPhoneMethod -UserId $navn[$i][0] -phoneType "mobile" -phoneNumber $navn[$i][1]
}
foreach
迭代器並不是那樣工作的。 它的想法是您可以逐個訪問集合中的每個元素。 這與項目的索引不同。 由於$name
是一個包含 arrays 的數組,您可以使用索引器訪問內部成員的元素。
像這樣,
# Use parenthesis (, not brackets [
# $contacts would be better a name since it's a collection of mail and phone pairs
$name = (
("name-01@email.com","+1 12345678"),
...
("name-02@email.com","+1 12345678"))
# Print each element's first - index zero - member:
foreach($i in $name) { $i[0] }
name-01@email.com
...
name-10@email.com
# Or second - index one - member:
foreach($i in $name) { $i[1] }
+1 12345678
...
+1 12345678
所以最終版本應該類似於
foreach ($i in $name) {
New-MgUserAuthenticationPhoneMethod -UserId $i[0] -phoneType "mobile" -phoneNumber $i[1]
}
我最終得到的是超級混亂的。
$user = @(
("name-01@email.no","+1 12345678"),
("name-02@email.no","+1 22345678"),
("name-03@email.no","+1 32345678"),
("name-04@email.no","+1 42345678"),
("name-05@email.no","+1 52345678"),
("name-06@email.no","+1 62345678"),
("name-07@email.no","+1 72345678")
)
$position = 0
foreach ($i in $user) {
New-MgUserAuthenticationPhoneMethod -UserId $user[$position][0] -phoneType "mobile" -phoneNumber $user[$position][1]
$position++
}
編輯:使用 vonPryz 解決方案。 它的方式更清潔,你應該如何做到這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.