2017-11-29 21 views
0

각 DL은 Sub-DL을 구성원으로 가질 수 있습니다. 따라서 foreach 루프를 사용하고 루프에서 다음과 같이 목록을 업데이트합니다.foreach 루프에서 배열 컬렉션을 업데이트 할 수 있습니까?

foreach ($ML in $DLs) { 

    $Temp=Get-DistributionGroupMember -Identity "$ML" | select Name, RecipientType 
    $DLs+=($Temp | Where-Object{$_."RecipientType" -eq "MailUniversalDistributionGroup" -or $_."RecipientType" -eq "DynamicDistributionGroup"})."Name" 
} 

필자의 의견대로 PowerShell은 끝에 추가 된 DL을 확인하지만 그렇게하지는 않습니다.

누군가 내게이 솔루션을 제공 할 수 있습니까?

답변

0

내 견해에 따르면 Foreach는 루프 내에서 자동 변수 $Foreach을 사용합니다. 그래서 무엇이 이제까지 $DL에 이르면 루프가 완료된 후에 만 ​​효력이 발생합니다.

foreach($t in $r){$t;$r=1;"r is $r";pause}

enter image description here

업데이트 대신 foreach

For 루프를 사용할 수 있습니다

: 여기

는 예를 들어 사이비 코드

$r = 1..5 

for($i = 0 ; $i -lt $r.count ; $i++) 
{ 
     $r += 1..10 | Get-Random 
    "current value is $($r[$i])" 
    "r is $r" 
} 
+0

감사합니다. Prasoon에게 문제의 원인을 설명해 주셔서 감사합니다. 루프에서 업데이트 된 항목을 읽을 루프가 있습니까? 그것은 큰 도움이 될 것입니다! – LittleBuddha

+0

내 대답을 제안으로 업데이트했습니다. –

+1

감사합니다 Prasoon에게 도움을 요청하십시오. – LittleBuddha