반응형
중첩된 Forach-Object 및 Where-Object의 변수
Powershell에서 중첩된 Forach-Object, Where-Object 및 기타 Cmdlet을 사용하는 방법이 궁금합니다.예를 들어 이 코드는 다음과 같습니다.
$obj1 | Foreach-Object {
$obj2 | Where-Object { $_ .... }
}
그래서 Foreach-Object의 코드 블록에서 나는 다음 요소들을 사용합니다.$obj1
~하듯이$_
그러나 Where-Object의 코드 블록에서도 동일한 현상이 발생합니다.$obj2
그렇다면 Where-Object 코드 블록에서 두 객체 요소에 액세스하려면 어떻게 해야 합니까?해야 할 것 같습니다.$_.Arg1 -eq $_.Arg1
하지만 이건 말이 안 돼요
FAIK, 로컬 변수에 추가하여 외부 루프에 대한 참조를 유지해야 합니다.
$obj1 | Foreach-Object {
$myobj1 = $_
$obj2 | Where-Object { $_ .... }
}
이 문제를 해결하는 또 다른 방법은 각각 조금씩 다른 것입니다.
ForEach($item in $obj1){
$obj | Where-Object{$_.arg -eq $item.arg}
}
여전히 약 _Scopes로 요약됩니다.$_
는 항상 현재 범위에 대한 참조입니다.아셔야 할 것은($_.Arg1 -eq $_.Arg1)
그냥 자기 자신을 지칭하는 것일 뿐입니다.
일치가 충분히 간단한 경우 내부 코드 블록을 제거하고 로컬 변수를 피할 수 있습니다.
$obj1 | Foreach-Object {
$obj2 | Where property -eq $_.property
}
예:
$array = ("zoom", "explorer", "notreal")
$array | foreach { get-process | where ProcessName -EQ $_ | Out-Host }
또한 오늘날 스코프를 사용할 수 있습니다. 예를 들어 내부의 각 스코프에 액세스할 수 있습니다.$_
그리고 각각의 부모는 다음을 사용하여 자식 루프 내에서 액세스할 수 있습니다.$script:_
언급URL : https://stackoverflow.com/questions/26715634/variables-in-nested-foreach-object-and-where-object
반응형
'source' 카테고리의 다른 글
CSS를 포함하는 가장 좋은 방법은?@import를 사용하는 이유는 무엇입니까? (0) | 2023.08.20 |
---|---|
SQL의 열 이름에 공백을 사용하여 테이블 만들기 (0) | 2023.08.20 |
Oracle SQL Developer 소문자 자동 완성(대문자는 어떻습니까) (0) | 2023.08.20 |
Entity Framework 7 데이터베이스 우선 POCO 생성기가 있습니까? (0) | 2023.08.20 |
Spring에서 트랜잭션을 사용할 때 사후 커밋 만들기 (0) | 2023.08.20 |