본문 바로가기
파워쉘(Powershell)/문법

배열 - Array

by 예배파 2024. 1. 21.

배열은 여러개의 데이터 요소들을 저장합니다. 파워쉘 배열은 하나의 배열에 다양한 형태의 값을 저장할 수 있습니다. 

배열에 저장된 값을 반복해서 사용하거나, 인덱스를 사용해서 값을 사용합니다 

 

배열 생성

 

배열을 생성할 때 데이터 요소들은 콤마(,)를 사용해서 구분합니다.

#자료형이 다른 요소들로 $firstArray 배열 생성

$firstArray = "hi", 10, "phone"
#숫자배열 만드는 방법

$nArray = 1,2,3,4,5,6,7,8,9
#일련된 숫자들로 배열을 만들때 사용하는 방법

$intArray = 1..9     #1부터 9까지의 수를 이용해서 배열에 저장
#문자 배열 생성

$sArray = "a","b","c"
#빈 배열 생성

$arr = @()

 

 

 

 

배열에 값을 추가 시킬때는 += 을 사용 합니다. 

$arr = "a","b","c"
$arr += "d"

 

몇 개 안되는 값들을 추가 시킬때 이 방법은 괜찮지만, 많은 값들을 배열에 넣을때는 이 방법을 권장하지 않습니다

+= 을 사용하면 내부적으로 새로 추가 시킬 배열을 포함해서 다시 배열을 생성하기 때문에 많은 값을 추가 시키면 작업이 느려질 수 있습니다. 많은 데이터를 넣어야 되는 경우에는 ArrayList를 사용하면 속도가 느려지는 문제를 해결할 수 있습니다

 

 

 

ArrayList 사용방법

$colorArrayList = New-Object System.Collections.ArrayList
$colorArrayList.Add("Korea")
$colorArrayList.Add("China")

 

 

 

 

배열에서 값을 읽는 방법

 

배열의 값을 읽기 위해서는 번호를 사용합니다. 첫 번째 배열은 1이 아니라 0을 사용합니다.

 

$arr = "Red","White","Black","Blue","Green"

 

 

생성된 배열

0 1 2 3 4
Red White Black Blue Green

 

 

 

 

배열이름[인덱스]를 사용하여 배열의 요소를 읽음

$arr[0]    #배열의 첫 번째 값

Red
$arr[1]     #배열의 두 번째 값

White
$arr[0,2]     #배열의 첫번째, 세번째 값

Red
Black
$arr[1..3]             #배열의 두번째부터 4번째 값(두번째, 세번째, 네번째)

White Black Blue
$arr[-1]   #인덱스 값이 -1은 배열의 가장 마지막 요소

Green

 

 

배열 요소의 개수

$arr.Length       #배열 요소의 개수
$arr.Count        #Length와 Count는 같다

결과
5
5

 

 

배열에서 비교(같다, 크다, 작다)를 사용해서 조건에 맞는 값들을 읽을 수 있습니다. 

-eq : 같다

-gt : 크다

-lt : 작다

$arr = 1,2,3,4,5,6,7,3
$arr -gt 3

실행결과
4
5
6
7
$arr -eq 3

실행결과
3
$arr -lt 4

실행결과
1
2
3

 

 

 

배열의 값을 바꾸는 방법

$arr = "White","Black","Red"
$arr[0] = "Blue"
$arr

실행결과
Blue
Black
Red

 

 

 

파이프라인과 ForEach를 사용하면 배열내의 모든 항목을 쉽게 읽을 수 있습니다.

$arr = "White","Blue","Red"
$arr | ForEach-Object { Write-Host "Color : " $_ }

실행결과
Color :  White
Color :  Blue
Color :  Red

 

$_는 파이프를 통해서 받은 각 항목을 의미합니다. ForEach-Object에서는 $_ 대신 $PSItem을 사용해도 됩니다.

Write-Host "Color : " $PSItem

예제에서는 White, Blue, Red가 해당 됩니다. 

ForEach-Object 내의 명령은 3번 반복됩니다. 첫 번째는 White를 파이프를 통해 넘겨주면 중괄호 내의 명령어가 실행됩니다. 그래서 Color : White 가 출력되고 두 번째 반복때는 Blue를 파이프를 통해 넘겨주고, 세번째는 Red를 파이프를 통해서 값을 넘겨주게 됩니다.

 

배열의 전체 내용을 하나씩 읽는 다른 방법은 ForEach 를 사용하는 것입니다.

$arr = "White","Blue","Red"

ForEach($color in $arr){ Write-Host "Color :" $color }

 

$arr의 첫번째 항목을 $color 변수에 넘겨주고 중괄호 안의 명령을 실행 합니다. 실행이 끝나면  $arr의 두 번째 항목을 $color에 변수에 값을 넣고 중괄호 안의 명령을 실행하는것을 반복합니다.

 

 

-Join : 배열의 내용을 묶어서 하나의 문자열로 만듭니다

$arr = 1,2,3,4,5,6
$arr -join ":"
$arr -join "*"
$arr -join ","
$arr -join $null

실행결과
1:2:3:4:5:6
1*2*3*4*5*6
1,2,3,4,5,6
1,2,3,4,5,6

 

 

-contains : 항목에 어떤 값이 있는지 알 수 있습니다. $true, $false로 결과가 나옵니다.

$arr = "Blue","Black","White"
$arr -contains "Black"

실행결과
True

 

 

 

'파워쉘(Powershell) > 문법' 카테고리의 다른 글

ArrayList  (0) 2024.03.07
반복문 (For, ForEach, Do ~ while, While)  (0) 2024.02.09
조건문 - if, switch  (0) 2024.01.19
파워쉘 문자열  (0) 2024.01.17
파워쉘 변수, 자료형  (0) 2024.01.17