PowerShell의 첫 번째부터 두 번째 끝까지 배열 인덱스
첫 번째부터 두 번째까지 배열 요소 범위를 얻으려면 어떻게 해야 합니까?
예를들면,
$array = 1,2,3,4,5
$array[0] - will give me the first (1)
$array[-2] - will give me the second last (4)
$array[0..2] - will give me first to third (1,2,3)
$array[0..-2] - I'm expecting to get first to second last (1,2,3,4) but I get 1,5,4 ???
나는 내가 긴 손으로 할 수 있다는 것을 압니다.for($x=0;$x -lt $array.count;$x++)
, 사각형 바로가기를 찾고 있었습니다.
다음과 같이 엔드 인덱스를 계산하면 됩니다.
$array[0..($array.length - 2)]
먼저 배열에 두 개 이상의 항목이 있는지 확인해야 합니다. 그렇지 않으면 결과가 중복됩니다.
이러한 복제의 예는 다음과 같습니다.
@(1)[0..-1]
어떤 것이, 한 사람의 배열로부터1
다음과 같은 출력을 제공합니다.
1
1
목록을 처리하는 상황이 발생할 수 있지만 길이를 알 수 없습니다.Select-object에 -skiplast 매개 변수가 있습니다.
(1,2,3,4,5 | select -skiplast 2)
1
2
3
앞서 언급한 바와 같이, 여기서 가장 좋은 솔루션은 다음과 같습니다.$array[0..($array.length - 2)]
당신이 만난 문제는$array[0..-2]
의 성질로 설명될 수 있습니다."0..-2"
식과 범위 연산자".."
PowerShell에 있습니다.이 부분만 평가하려고 하면."0..-2"
PowerShell에서는 0부터 -2까지의 숫자 배열을 확인할 수 있습니다.
>> 0..-2
0
-1
-2
그리고 당신이 하려고 할 때는$array[0..-2]
PowerShell의 경우에는 다음과 같습니다.$array[0,-1,-2]
. 그래서 결과가 나오는 겁니다.1, 5, 4
대신에1, 2, 3, 4
.
Python이나 Ruby의 배경이 있다면 처음에는 직관에 어긋날 수 있지만, PowerShell을 사용할 때는 이를 고려해야 합니다.
로버트 웨스터런드의 대답은 훌륭합니다.이 답변은 어레이에 대해 알고 싶은 모든 것 페이지에서 방금 보고 시험해 보고 싶었습니다.목표가 무엇인지 정확하게 묘사된 것 같아서 좋아요. 상한에서 한 번에 끝나는 것 같아요.
$array[0..($array.GetUpperBound(0) - 1)]
1
2
3
4
Get-InstalledModule에서 최신 버전을 제외한 모든 버전을 제거하기 위해 당신의 원래 시도의 변형을 사용했습니다.정말 짧지만 9개 이상이면 8개만 반송되지만 음수는 더 크게 넣을 수 있습니다.
$array[-9..-2]
1
2
3
4
언급URL : https://stackoverflow.com/questions/23400410/array-index-from-first-to-second-last-in-powershell
'programing' 카테고리의 다른 글
부트스트랩 3의 툴팁에 줄 바꿈 추가 (0) | 2023.09.13 |
---|---|
MariaDB 도커 이미지 빌드 실패 (0) | 2023.09.08 |
프로토콜이 특정 클래스에서만 채택되도록 요구하는 방법 (0) | 2023.09.08 |
부트스트랩 팝업에 형태가 포함되어 있습니까? (0) | 2023.09.08 |
해시 테이블을 문자열 배열로 변환하는 중 (0) | 2023.09.08 |