具有多个变量的ForEach-Powershell

时间:2019-03-13 10:51:07

标签: powershell

$ Res是

的结果
  

Invoke-RestMethod

我目前有以下代码。

$ObjectGUIDS = $Res.ObjectGUID

$AccountID = $Res.ID

$I = 0

ForEach ($ObjectGUID in $ObjectGUIDS) {

    Write-Host $ObjectGUID ($AccountID[$I])


    $I = $I +1
}

输出

81d651d5-aeab-4a6f-a102-3e420b5bb630 5
b0f0283a-187f-4fab-9b3d-de98491c8283 6
b84c830a-9c01-49d2-adbd-d70d80199de1 7

我想遍历结果,如果我只想要一个变量(即ObjectGUID或AccountID)的结果,那很好。上面的代码是很糟糕的,我认为它的正确性并不高,但是它确实可以工作。

我确实在ForEach中尝试了ForEach,但这将为每个$ AccountID返回每个$ ObjectGUID 3次

$ObjectGUIDS = $Res.ObjectGUID

$AccountIDS = $Res.ID

ForEach ($ObjectGUID in $ObjectGUIDS) {
    ForEach ($AccountID in $AccountIDS) {

    Write-Host $ObjectGUID ($AccountID)

    }
}

输出

81d651d5-aeab-4a6f-a102-3e420b5bb630 5
81d651d5-aeab-4a6f-a102-3e420b5bb630 6
81d651d5-aeab-4a6f-a102-3e420b5bb630 7
b0f0283a-187f-4fab-9b3d-de98491c8283 5
b0f0283a-187f-4fab-9b3d-de98491c8283 6
b0f0283a-187f-4fab-9b3d-de98491c8283 7
b84c830a-9c01-49d2-adbd-d70d80199de1 5
b84c830a-9c01-49d2-adbd-d70d80199de1 6
b84c830a-9c01-49d2-adbd-d70d80199de1 7

1 个答案:

答案 0 :(得分:2)

我认为您可能会因为将$Res的两个属性放在单独的变量中而使事情复杂化。

我认为这可以代替

ForEach ($Result in $Res) {
    Write-Host $Result.ObjectGUID $Result.ID
}