遍历二维数组 |电源外壳
Looping through 2D array | Powershell
我正在尝试制作一个脚本,让我可以一次从 array/list.
中为多个 azure 用户添加电话号码 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"]
]
下面是我用来添加属于电子邮件的号码的命令。
foreach ($i in $name) {
New-MgUserAuthenticationPhoneMethod -UserId $navn[$i][0] -phoneType "mobile" -phoneNumber $navn[$i][1]
}
foreach
迭代器不是那样工作的。它的想法是您可以逐一访问集合中的每个元素。这与项目的索引不同。由于 $name
是一个包含数组的数组,您可以使用索引器访问内部成员的元素。
像这样,
# 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 解决方案!它的清洁方式以及您应该如何做到这一点。
我正在尝试制作一个脚本,让我可以一次从 array/list.
中为多个 azure 用户添加电话号码 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"]
]
下面是我用来添加属于电子邮件的号码的命令。
foreach ($i in $name) {
New-MgUserAuthenticationPhoneMethod -UserId $navn[$i][0] -phoneType "mobile" -phoneNumber $navn[$i][1]
}
foreach
迭代器不是那样工作的。它的想法是您可以逐一访问集合中的每个元素。这与项目的索引不同。由于 $name
是一个包含数组的数组,您可以使用索引器访问内部成员的元素。
像这样,
# 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 解决方案!它的清洁方式以及您应该如何做到这一点。