PowerShell에서 사용자 정의 객체 배열을 초기화하는 방법
- Windows PowerShell에서 배열 사용하기
- Windows PowerShell에서 배열 접근하기
- Windows PowerShell을 사용하여 배열의 항목 변경하기
- Windows PowerShell에서 배열 반복하기
- Windows PowerShell을 사용하여 배열에 객체 만들기
- Windows PowerShell을 사용하여 배열의 객체 접근하기
- Windows PowerShell을 사용하여 배열의 객체 업데이트하기
- Windows PowerShell에서 배열의 프로퍼티 접근하기
- Windows PowerShell에서 ArrayList 만들기

배열은 Windows PowerShell의 기본 기능입니다. 이는 정확한 데이터 구조를 수집하고 조작하며 출력하는 것을 가능하게 합니다(단순한 원시 문자열이 아닙니다).
이 기능은 PowerShell을 다른 스크립팅 언어와 다르고 더 실용적으로 만듭니다.
이 글에서는 배열이 무엇인지, Windows PowerShell에서 배열을 생성하는 방법, 그리고 이것들을 조작하는 데 필요한 기능을 사용할 것입니다.
Windows PowerShell에서 배열 사용하기
Windows PowerShell의 배열은 하나 이상의 항목을 포함할 수 있습니다. 배열은 문자열, 정수, 객체 또는 다른 배열일 수 있습니다.
각 항목은 0에서 시작하여 항목마다 반복되는 인덱스를 가집니다.
배열을 생성하는 기본 구문은 @()
입니다.
$data = @()
@
뒤에 괄호 안에 값을 넣을 수 있습니다:
$data = @('Zero', 'One', 'Two', 'Three')
배열의 항목을 표시하려면, 이름 붙인 변수를 호출할 수 있습니다:
$data
출력:
Zero
One
Two
Three
Windows PowerShell에서 배열 접근하기
이제 배열을 가졌으므로 항목에 접근하고 싶습니다. 이를 위한 여러 가지 방법이 있습니다.
첫 번째 방법은 배열의 항목 인덱스를 사용하는 것입니다. 앞서 언급했듯이 인덱스는 0
에서 시작합니다.
따라서 Windows PowerShell에 할당된 인덱스가 0인 항목을 살펴보라고 지시하여 배열에서 첫 번째 항목을 검색해야 합니다.
$data[0]
이 구문은 zero
라는 문자열을 반환할 것입니다. 이는 우리가 배열에 처음 넣었던 문자열이기 때문입니다. 같은 명령어에 더 많은 인덱스를 넣어 동일한 배열에서 여러 항목을 반환하도록 이 스니펫을 확장할 수 있습니다.
$data[0, 2, 3]
출력:
Zero
Two
Three
Windows PowerShell을 사용하여 배열의 항목 변경하기
배열의 항목을 업데이트하기 위해 동일한 방법을 사용할 수 있습니다. 예를 들어, 할당된 인덱스가 2인 항목을 업데이트하려면 다음을 실행할 수 있습니다:
$data[2] = 'second'
이 방법은 배열 내부의 항목에 직접 접근할 수 있습니다.
Windows PowerShell에서 배열 반복하기
Windows PowerShell의 가장 강력한 기능 중 하나는 배열의 모든 항목에 동일한 작업을 수행하는 것입니다. 가장 기본적인 방법은 파이프라인 문자(|
)를 사용하는 것입니다.
예를 들어, 배열의 각 항목에 설명을 추가하려면 다음 명령어를 사용할 수 있습니다:
$data | ForEach-Object { "Item: [$PSItem]" }
이 명령어는 PowerShell 스크립팅 환경에 $data
배열의 항목을 한 번에 하나씩 처리하도록 지시합니다.
Windows PowerShell을 사용하여 배열에 객체 만들기
우리는 문자열과 동일한 방법을 사용하여 사용자 정의 객체로 가득 찬 배열을 만들 수 있습니다, 배열 (@()
) 기능을 사용합니다. 예를 들어, 직원의 테스트 목록을 만들려면 다음을 사용할 수 있습니다:
$data = @(
[pscustomobject]@{FirstName = 'Kevin'; LastName = 'Marquette' }
[pscustomobject]@{FirstName = 'John'; LastName = 'Doe' }
)
대부분의 PowerShell 기본 명령은 작업할 변수를 할당할 때 이 유형의 객체로 가득 찬 배열을 반환합니다.
Windows PowerShell을 사용하여 배열의 객체 접근하기
이전 과정에서 개별 데이터 조각에 접근하기 위해 진행한 과정은 객체를 포함하는 배열에도 동일하게 적용할 수 있습니다.
$data[0]
출력:
FirstName LastName
----- ----
John Hampton
또는 특정 프로퍼티를 명령문 내에서 호출하고자 하는 개별 객체의 프로퍼티를 지정하여 얻을 수 있습니다.
$data[0].FirstName
출력:
John
Windows PowerShell을 사용하여 배열의 객체 업데이트하기
정확한 구문은 배열에 담긴 객체 내에서 개별 프로퍼티를 업데이트할 수 있게 해줍니다.
$data[0].FirstName = 'Jay'
Windows PowerShell에서 배열의 프로퍼티 접근하기
대부분의 프로그래밍 및 스크립팅 언어에서는 다양한 객체의 모든 프로퍼티에 접근하기 위해 반복 방법을 사용해야 합니다. Windows PowerShell에서도 그렇게 할 수 있습니다.
$data | ForEach-Object { $_.LastName }
이 방법은 우리의 배열에서 모든 LastName
프로퍼티 리스트를 반환할 것이지만, 계산 비용이 많이 들고 이 데이터를 보려면 매번 작성하기 어렵습니다. 그래서 대신 PowerShell에는 단축키가 있습니다.
$data.LastName
그리고 동일한 목록을 볼 수 있습니다. PowerShell은 이전과 마찬가지로 각 객체를 차례로 처리하지만, 이 복잡성을 우리에게 숨깁니다.
Windows PowerShell에서 ArrayList 만들기
배열에 항목을 추가하는 것은 어려울 수 있습니다. 그러나 ArrayList는 더 우아하게 이를 처리하는 다른 유형의 컬렉션입니다.
하지만 이러한 유형의 컬렉션을 사용하려면 .NET 프레임워크를 사용해야 합니다. ArrayList를 생성하고 항목을 추가하려면 다음을 실행하세요:
$myarray = [System.Collections.ArrayList]::new()
[void]$myArray.Add('Value')