항목
    about_Arrays

간단한 설명
    데이터 요소를 저장하기 위한 간단한 데이터 구조를 설명합니다.

자세한 설명
    배열은 동일한 유형의 데이터 요소 집합을 저장하기 위한 데이터 구조입니다. Windows PowerShell은 string, 
    int(32비트 정수), long(64비트 정수), bool(부울), byte, 기타 Microsoft .NET Framework 개체 유형 등의
    데이터 요소를 지원합니다. 

  배열 만들기 및 초기화
    배열을 만들고 초기화하려면 변수에 여러 값을 할당하십시오.
    배열에 저장된 값은 쉼표로 구분되고 할당 연산자(=)로 변수 이름과 분리됩니다. 

    예를 들어, 22, 5, 10, 8, 12, 9, 80 등의 숫자(int) 값 7개가 포함된 $A라는 배열을 만들려면 
    다음을 입력합니다.

        $A = 22,5,10,8,12,9,80

    또한 범위 연산자(..)를 사용하여 배열을 만들고 초기화할 수도 있습니다. 예를 들어, 5에서 8까지의 값이 
    들어 있는 "$B"라는 배열을 만들고 초기화하려면 다음과 같이 입력하십시오.

        $B = 5..8

    결과적으로 $B에는 5, 6, 7, 8의 값 4개가 포함됩니다.

    데이터 유형을 지정하지 않으면 Windows PowerShell에서 각 배열이 개체 배열(유형: object[])로 
    만들어집니다. 배열의 데이터 유형을 확인하려면 GetType() 메서드를 사용하십시오. 예를 들어, $a 배열의 
    데이터 유형을 확인하려면 다음과 같이 입력하십시오.

        $a.gettype()

    강력한 형식의 배열 즉, 특정 유형의 값만 포함할 수 있는 배열을 만들려면 변수를 string[], long[], 
    int32[] 등의 배열 유형으로 캐스팅합니다. 배열을 캐스팅하려면 변수 이름 앞에 대괄호로 묶인 배열 유형을 
    입력해야 합니다. 예를 들어, 정수 4개(1500, 2230, 3350, 4000)가 들어 있는 $ia라는 32비트 정수 배열을 
    만들려면 다음을 입력합니다.

        [int32[]]$ia = 1500,2230,3350,4000

    그러면 $ia 배열에 정수만 포함될 수 있습니다.

    Microsoft .NET Framework에서 지원하는 유형으로 캐스팅되는 배열을 만들 수 있습니다. 예를 들어, Get-
    Process에서 프로세스를 나타내기 위해 검색하는 개체는 System.Diagnostics.Process 유형입니다. 
    강력한 형식의 프로세스 개체 배열을 만들려면 다음 명령을 입력합니다.

        [Diagnostics.Process[]]$zz = Get-Process

    cmdlet, 함수 또는 문의 출력을 사용하여 배열을 채울 수 있습니다. 예를 들어, 다음 문은 문자 "co"로 
    시작하고 현재 컴퓨터에서 실행하는 프로세스가 포함된 배열을 만듭니다.

        $LocalProcesses = get-process co*

    문이 단일 프로세스만 가져올 경우 $LocalProcesses 변수는 배열이 아닙니다. 명령에서 배열을 만드는지 
    확인하려면 다음 예와 같이 배열 하위 식 연산자 @를 사용합니다.

        $LocalProcesses = @(get-process co*)

    명령에서 단일 프로세스가 반환되더라도 $LocalProcesses 변수는 배열입니다. 멤버가 하나만 있더라도 
    다른 배열과 마찬가지로 처리할 수 있습니다. 예를 들어, 다른 개체를 배열에 추가할 수 있습니다. 
    자세한 내용은 about_Operators를 참조하십시오.

 
  배열 읽기
    $A 또는 $a와 같은 변수 이름을 사용하여 배열을 참조할 수 있습니다. Windows PowerShell은 대/소문자를 
    구분하지 않습니다.

    배열에 있는 모든 요소를 표시하려면 배열 이름을 입력합니다. 예를 들면 다음과 같습니다.

	$a

    위치 0에서 시작하는 인덱스를 사용하여 배열의 요소를 참조할 수 있습니다. 이렇게 하려면 인덱스 번호를 
    대괄호로 묶어야 합니다. 예를 들어, $a 배열의 첫 번째 요소를 표시하려면 다음과 같이 입력하십시오.

        $a[0]

    $a 배열의 세 번째 요소를 표시하려면 다음과 같이 입력하십시오.

        $a[2]

    음수는 배열을 역순으로 참조합니다. 예를 들어, "-1"은 배열의 마지막 요소를 참조합니다. 배열의 마지막 세 
    요소를 표시하려면 다음과 같이 입력하십시오.

        $a[-3..-1]

    그러나 이 표기법을 사용할 때는 주의해야 합니다.

        $a[0..-2]

    위와 같이 입력하면 마지막 요소를 제외한 배열의 모든 요소가 참조되는 대신
    배열의 첫 번째, 마지막 및 마지막에서 두 번째 요소가 참조됩니다.
   
    범위 연산자를 사용하여 배열에 있는 모든 값의 하위 집합을 표시할 수 있습니다. 예를 들어, 인덱스 위치  
    1 ~ 3에 있는 데이터 요소를 표시하려면 다음과 같이 입력하십시오.

        $a[1..3]

    더하기 연산자(+)를 사용하여 배열에 있는 요소의 범위와 목록을 결합할 수 있습니다. 예를 들어, 인덱스 
    위치 0, 2 및 4 ~ 6의 요소를 표시하려면 다음과 같이 입력하십시오.

        $a[0,2+4..6]

    배열에 있는 항목 수를 확인하려면 배열의 범위와 길이 속성을 결합합니다. 예를 들어, 인덱스 위치 2에서 
    배열의 끝 사이에 있는 요소를 표시하려면 다음과 같이 입력하십시오.

        $a[2..($a.length-1)]

    인덱스가 위치 0에서 시작하기 때문에 길이는 -1로 설정됩니다. 따라서 세 개의 요소로 구성된 
    배열(1,2,3)에서 세 번째 요소의 인덱스는 배열의 길이보다 1이 작은 2입니다.


    또한 Foreach, For, While 루프 등의 루프 구문을 사용하여 배열의 요소를 참조할 수도 있습니다. 예를 들어, 
    Foreach 루프를 사용하여 $a 배열의 요소를 표시하려면 다음과 같이 입력하십시오. 

        foreach ($element in $a) {$element}

    Foreach 루프는 배열에서 반복적으로 실행되며 배열의 끝에 도달할 때까지 배열에 있는 각 값을 반환합니다.

    For 루프는 배열의 요소를 검사하는 동안 카운터를 증가시키는 경우에 유용합니다. 예를 들어, For 루프를 
    사용하여 배열에 있는 하나씩 걸러 반환하려면 다음과 같이 입력하십시오.

        for ($i = 0; $i -le ($a.length - 1); $i += 2) {$a[$i]}

    While 루프를 사용하여 정의된 조건이 더 이상 충족되지 않을 때까지 배열의 요소를 표시할 수 있습니다. 
    예를 들어, 배열 인덱스가 4보다 작을 때 $a 배열의 요소를 표시하려면 다음과 같이 입력하십시오.

        $i=0
        while($i -lt 4) {$a[$i]; $i++}

    Length 속성 및 SetValue 메서드 등의 배열 속성과 메서드에 대한 자세한 내용을 보려면 Get-Member 
    cmdlet의 InputObject 매개 변수를 사용하십시오. Get-Member에 배열을 파이프하면 배열의 개체에 대한 
    정보가 표시되고 InputObject 매개 변수를 사용하면 배열에 대한 정보가 표시됩니다. 

    $a 배열의 속성과 메서드를 찾으려면 다음과 같이 입력하십시오.

	get-member -inputobject $a


  배열 조작
    배열의 요소를 변경하고, 배열에 요소를 더하고, 두 배열의 값을 세 번째 배열로 결합할 수 있습니다.

    배열에 있는 특정 요소의 값을 변경하려면 배열 이름과 변경할 요소의 인덱스를 지정한 다음 할당 
    연산자(=)를 사용하여 요소의 새 값을 지정하십시오. 예를 들어, $a 배열에 있는 두 번째 항목(인덱스 
    위치 1)의 값을 10으로 변경하려면 다음과 같이 입력하십시오.

        $a[1] = 10

    또한 배열의 SetValue 메서드를 사용하여 값을 변경할 수도 있습니다. 다음 예에서는 $a 배열의 두 번째 
    값(인덱스 위치 1)을 500으로 변경합니다.

        $a.SetValue(500,1)

    += 연산자를 사용하여 기존 배열에 요소를 추가하거나
    기존 값에 값을 더할 수 있습니다. 이 연산자를 배열의 요소에 사용하면 해당 요소의 값이 증가하고, 배열 
    자체에 사용하면 값이 추가됩니다. 예를 들어, $a 배열에 값이 200인 요소를 추가하려면 다음과 같이 
    입력하십시오.

        $a += 200

    배열의 요소를 삭제하는 것은 쉽지 않지만 기존 배열에서 선택한 요소만 들어 있는 새 배열을 만들 수 
    있습니다. 예를 들어, 인덱스 위치 2에 있는 값을 제외한 $a 배열의 모든 요소가 들어 있는 $t 배열을 
    만들려면 다음과 같이 입력하십시오.

        $t = $a[0,1 + 3..($a.length - 1)]

    두 배열을 하나의 배열로 결합하려면 더하기 연산자(+)를 사용하십시오. 다음 예에서는 두 배열을 만들어 
    하나의 배열로 결합한 다음 결합된 결과 배열을 표시합니다.

        $x = 1,3
        $y = 5,9
        $z = $x + $y

    결과적으로 $z 배열에는 1, 3, 5 및 9가 포함됩니다.

    배열을 삭제하려면 Remove-Item cmdlet을 사용하여 배열이 들어 있는 변수를 삭제합니다. 다음 명령은 
    Variable: 드라이브의 요소 "a"를 지정합니다. 

        remove-item variable:a

    Variable: 드라이브에 대한 자세한 내용을 보려면 Variable 공급자 도움말 항목을
    참조하십시오.


참고 항목
    about_Assignment_Operators
    about_Hash_Tables
    about_Operators
    about_For
    about_Foreach
    about_While




목차