반응형
PowerShell 루프에서 현재 항목의 인덱스 가져 오기
PowerShell의 항목 목록이 주어지면 루프 내에서 현재 항목의 인덱스를 어떻게 찾습니까?
예를 들면 :
$letters = { 'A', 'B', 'C' }
$letters | % {
# Can I easily get the index of $_ here?
}
이 모든 것의 목표는 Format-Table을 사용하여 컬렉션을 출력 하고 현재 항목의 인덱스가있는 초기 열을 추가하려는 것입니다. 이렇게하면 사람들이 선택할 항목을 대화식으로 선택할 수 있습니다.
"자동"변수를 사용할 수 있는지 잘 모르겠습니다. 언제든지 직접 선언하고 증분 할 수 있습니다.
$letters = { 'A', 'B', 'C' }
$letters | % {$counter = 0}{...;$counter++}
또는 for
대신 루프를 사용하십시오 ...
for ($counter=0; $counter -lt $letters.Length; $counter++){...}
.NET에는 System.Array에 이러한 종류의 유용한 유틸리티 메서드가 있습니다.
PS> $a = 'a','b','c'
PS> [array]::IndexOf($a, 'b')
1
PS> [array]::IndexOf($a, 'c')
2
댓글에서 위의 접근 방식에 대한 좋은 점. 문제의 맥락을 고려할 때 배열에서 항목의 인덱스를 "그냥"찾는 것 외에도 다음이 더 적합 할 것입니다.
$letters = { 'A', 'B', 'C' }
$letters | % {$i=0} {"Value:$_ Index:$i"; $i++}
Foreach (%)는 한 번 실행되는 Begin sciptblock을 가질 수 있습니다. 여기서 인덱스 변수를 설정 한 다음 스크립트 블록을 종료하기 전에 증가하는 프로세스 scripblock에서 참조 할 수 있습니다.
PowerShell 3.0 이상의 경우 기본 제공됩니다. :)
foreach ($item in $array) {
$array.IndexOf($item)
}
0..($letters.count-1) | foreach { "Value: {0}, Index: {1}" -f $letters[$_],$_}
참조 URL : https://stackoverflow.com/questions/1785474/get-index-of-current-item-in-a-powershell-loop
반응형
'code' 카테고리의 다른 글
xcode 8을 사용하여 신속한 3의 userdefaults에 사전 저장 (0) | 2020.12.27 |
---|---|
PHP 5 Reflection API 성능 (0) | 2020.12.27 |
Linq 쿼리 그룹화 및 첫 번째 항목 선택 (0) | 2020.12.27 |
페이지 조각 사이의 Android ViewPager 패딩 / 여백 (0) | 2020.12.27 |
ViewDidLoad에서 Segue 수행 (0) | 2020.12.27 |