PowerShell 어레이: 생성 및 사용 방법

변수는 모든 유형의 코딩(any type of coding) 에서 가장 기본적인 데이터 구조입니다 . 그러나 단일 변수는 대부분의 목적, 특히 더 복잡한 알고리즘을 다룰 때 거의 충분하지 않습니다.

그것이 배열이 들어오는 곳입니다. C++이든 Python 이든 배열은 모든 프로그래밍 언어에 어떤 형태로 존재합니다. 하지만 Windows PowerShell 은 어떻습니까? PowerShell 어레이 는 어떻게 작동합니까? 어떻게 사용합니까? 구문은 무엇입니까? 알아 보자.

PowerShell 어레이 101

간단히(Simply) 말해서 배열은 구조화된 변수 모음입니다. 아이디어는 관련 변수를 번호가 매겨진 집합으로 축소하여 수십 개의 이름을 추적하는 번거로움을 없애는 것입니다.

PowerShell 에서는 변수 이름 앞에 $ 기호를 추가하여 변수를 만들 수 있습니다. 예를 들어:

$prime = 13

변수는 숫자에서 문자열에 이르기까지 모든 데이터 유형을 포함할 수 있습니다. 문자열을 지정하려면 큰따옴표나 작은따옴표를 사용하기만 하면 됩니다.

$name = “Levin”

이제 새 배열을 만들려면 쉼표로 구분하여 동일한 변수에 여러 값을 할당하기만 하면 됩니다. 이와 같이:

$week = “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”

어떤 사람들은 혼란을 피하기 위해 변수를 배열에 명시적으로 캐스팅하는 것을 선호하지만 반드시 필요한 것은 아닙니다. 이렇게 하려면 @ 기호가 앞에 오는 괄호 안에 값을 입력합니다.

$week = @(“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”)

이것은 일반적으로 다른 명령의 출력을 올바른 형식으로 수동으로 작성할 수 없는 배열에 넣으려고 할 때 유용합니다.

배열 생성

우리는 이미 배열을 생성하는 가장 일반적인 방법을 보았습니다. 그러나 상황에 따라 더 적합한 다른 방법이 있습니다. 예를 들어, 숫자 범위를 포함하는 배열을 생성하려는 경우 범위 연산자를 사용할 수 있습니다.

$digits = (0..9)

이것은 0에서 9까지의 모든 10자리 숫자의 배열을 생성할 것입니다. 나중에 값을 저장할 장소를 원할 경우를 대비하여 빈 배열을 초기화할 수도 있습니다.

$values = @()

여러(Multiple) 배열이 서로 중첩될 수도 있지만 이러한 유형의 사용은 매우 빠르게 혼동될 수 있습니다.

$coordinates = @(
    (5, 10, 23),
    (11, 7, 16)
)

기본적으로 배열은 숫자, 문자열 또는 이 둘을 혼합한 모든 변수 유형을 저장할 수 있습니다. 그러나 입력되는 값을 제한하려는 경우 유형을 명시적으로 정의할 수 있습니다. 예를 들어:

[int[]] $numbers = 2,3,4,5

이런 식으로 배열은 정수만 담을 수 있습니다. 다른 유형의 값을 할당하려고 하면 오류가 반환됩니다. 계산에 사용할 변수에 문자열을 입력하면 문제가 발생하기 때문에 숫자 값으로만 ​​작동하는 배열에 대한 간단한 오류를 방지하는 데 유용할 수 있습니다.

배열 액세스

지금까지 우리는 다양한 유형의 데이터를 포함하는 배열을 생성하는 여러 방법을 보았습니다. 하지만 이 데이터에 액세스하려면 어떻게 해야 합니까?

PowerShell 배열은 다른 프로그래밍 언어에서 사용하는 것과 동일한 형식을 사용합니다. 각 배열 변수는 인덱스 번호로 액세스할 수 있습니다. 예를 들어:

$var = $numbers[5]

$var 변수 에 있는 $numbers 배열 의 인덱스 5에 저장된 값을 복사합니다 . 배열 인덱스는 0부터 계산하기 시작하므로 첫 번째 항목은 0으로 액세스됩니다.

이것을 출력한다면, 예를 들면:

“$days[2]”

화요일이 아니라 수요일이 됩니다.

이 동일한 방법을 사용하여 이러한 값도 수정할 수 있습니다. 예를 들어 다음 명령은 배열의 두 번째 요소를 0으로 변경합니다.

$numbers[1] = 0

산술 표현식처럼 추가하여 현재 항목의 값을 변경하는 대신 기존 배열에 더 많은 요소를 추가할 수도 있습니다.

$names += “Johny”

이 방법을 사용하여 한 번에 여러 항목을 추가하거나 전체 배열을 추가할 수도 있습니다.

$names += “Charlie, Liam, Teresa”

$names += $surnames

쉼표로 구분된 방법은 여러 배열 요소에도 액세스할 수 있습니다. $days 의 처음 5개 요소가 $ $weekdays 에 저장 됩니다.

$weekdays = $days[0,1,2,3,4]

배열을 통한 반복

배열의 특정 요소에 수동으로 액세스하는 것은 훌륭하지만 배열의 전체 내용에 대해 작업을 수행하려는 경우 지루할 수 있습니다. 보다 우아한 접근 방식은 For 루프를 사용하는 것입니다.

For 루프는 배열의 모든 요소를 ​​체계적으로 거쳐 지침에 따라 각 값을 처리할 수 있습니다. 이러한 루프를 구성하는 방법은 다음과 같습니다.

For ($i = 0 ; $i -lt $days.Length ; $i++){
    $days[$i]}

array.Length 함수는 기본적으로 배열의 요소 수인 배열의 크기를 반환합니다. 이것은 For 루프의 테스트 표현식 매개변수에 연결하여 모든 요소를 ​​포괄적으로 반복할 수 있습니다.

Foreach 루프와 Foreach -object 루프는 더 간결한 PowerShell 스크립트로 동일한 작업을 수행할 수 있습니다(PowerShell) .

Foreach ($day in $days){
    $day}

이렇게 하면 PowerShell(PowerShell) 이 ​​처리 할 세부 정보를 남겨두고 어레이 크기를 결정하는 수고를 줄일 수 있습니다.

PowerShell 어레이를(PowerShell Arrays) 사용해야 하는 경우

복잡한 스크립트에서 버그의 가장 큰 원인은 잘못 참조된 변수입니다. 이것은 고유하게 명명된 변수가 많기 때문에 발생하므로 목적을 기억하기 어렵습니다.

이 문제에 대한 가장 간단한 수정은 어레이를 광범위하게 사용하는 것입니다. 어떤 방식으로든 관련된 모든 변수는 단일 배열에 할당되고 인덱스 번호를 통해 액세스할 수 있습니다.

Microsoft PowerShell의(Microsoft PowerShell’s) 주요 사용 사례는 자동화이며 어레이가 그 중추적인 역할을 합니다. PowerShell cmdlet 에서 반환된 개체는 배열에 저장하고 반복할 수 있습니다. 이를 통해 순차적 작업이 자동으로 수행되어 시스템 관리가 크게 간소화됩니다.



About the author

저는 Windows MVP이고 2007년부터 Windows로 작업해 왔습니다. 제 경험에는 소프트웨어 개발, 하드웨어 및 사운드, Windows 앱이 포함됩니다. 저는 항상 제 작업에서 사용자 경험을 개선할 수 있는 최선의 방법을 찾고 있습니다. 따라서 소프트웨어 응용 프로그램을 설계하거나 개발하는 데 도움이 필요하면 제 서비스를 제공할 수 있습니다.



Related posts