각 개체에 대해 다음 항목으로 이동
여러 도메인의 모든 도메인 관리자를 확인하는 PowerShell 스크립트가 있습니다.각 사용자 계정에 대해 여러 가지 검사가 수행됩니다.둘 중 하나가 실패하면 스크립트는 목록의 다음 관리자로 이동해야 합니다.
현재 다음과 같은 것이 있습니다(간체).
Get-QADGroupMember "Domain Admins" | Select-Object SamAccountName | ForEach-Object {
#Do something
if(!ThisCheckIsOK)
{
break;
}
#Do something else
if(ThisCheckIsNotOK)
{
break;
}
...
}
이렇게 하면 전체 스크립트가 중지됩니다.다음 요소로 가는 방법이 있습니까?
$foreach.movenext()
이후 작동하지 않습니다.$foreach
이라null
.
당신은 단지 그것을 교체하면 됩니다.break
와 함께return
진술.
내부의 코드를 생각해 보십시오.Foreach-Object
익명 함수로서.함수 내부에 루프가 있는 경우, 생성에 적용되는 control 키워드만 사용합니다.continue
,break
, ...).
다음을 사용할 수 있습니다.Continue
가장 안쪽 루프로 계속할 문입니다.
발췌:PowerShell
도움말 파일:
스크립트에서,
continue
문은 프로그램 흐름을 다음 문 중 하나에 의해 제어되는 가장 안쪽 루프의 맨 위로 즉시 이동시킵니다.
for
foreach
while
이것이 오래된 게시물인 것은 알지만, 저는 구글링을 하다가 이곳에 도착하는 다음 사람들을 위해 제가 배운 것을 추가하고 싶었습니다.
Powershell 5.1에서 사용하려는 항목continue
루프의 다음 항목으로 이동합니다.나는 6개의 항목을 배열로 테스트했고,foreach
반복하지만 if 문을 다음과 같이 입력합니다.
foreach($i in $array){
write-host -fore green "hello $i"
if($i -like "something"){
write-host -fore red "$i is bad"
continue
write-host -fore red "should not see this"
}
}
6개의 아이템 중 3번째 아이템은 뭔가였습니다.예상대로, 그것은 처음 2개를 통과했고, 그리고 일치하는 무언가가 나에게 빨간 선을 주었습니다.$i
맞아요, 봤어요.something is bad
그리고는 아무 말 없이 배열의 다음 항목으로 넘어갔습니다.should not see this
로 테스트했습니다.return
그리고 그것은 완전히 고리를 빠져나갔습니다.
continue 문은 당신이 요청한 대로 해야 합니다.다음은 사용자(또는 검색에서 이 게시물을 찾는 사용자)가 원하는 작업을 수행할 수 있는 예입니다.
$vals = @("one", "two", "three", "four", "five", "six", "seven");
foreach ($val in $vals)
{
Write-Host "";
Write-Host "$($val) before";
if ($val -eq "three")
{
continue;
}
Write-Host "$($val) after";
}
차례차례
2시 2분 전에
3전에
4시 4분 전에
5시 5분 전에
6시 6분 전에
7시 7분 전에
언급URL : https://stackoverflow.com/questions/8414370/go-to-next-item-in-foreach-object
'programing' 카테고리의 다른 글
교차 서브도메인 AJAX 요청이 허용되는 줄 알았는데, 이 크롬 오류는 그렇지 않다는 것을 나타내는 것 같습니다. (0) | 2023.08.18 |
---|---|
'1004': "정렬 참조가 잘못되었습니다." (0) | 2023.08.18 |
Swift를 사용하는 문자열의 하위 문자열 인덱스 (0) | 2023.08.18 |
선택을 취소하는 가장 좋은 방법선택을 취소하는 가장 좋은 방법선택을 취소하는 가장 좋은 방법 (0) | 2023.08.18 |
"col-xs-*"이 Bootstrap 4에서 작동하지 않음 (0) | 2023.08.18 |