PowerShell에서 빈 배열의 배열을 생성하는 방법

  1. PowerShell의 배열 이해하기
  2. @() 배열 서브 표현식 연산자를 사용하여 PowerShell에서 빈 배열의 배열 생성하기
  3. New-Object Cmdlet과 System.Collections.ArrayList 클래스를 사용하여 PowerShell에서 빈 배열의 배열 생성하기
  4. @{} 해시테이블을 사용하여 PowerShell에서 빈 배열의 배열 생성하기
  5. 결론
PowerShell에서 빈 배열의 배열을 생성하는 방법

PowerShell은 다재다능한 스크립팅 기능을 통해 배열을 생성하고 조작하는 여러 가지 방법을 제공합니다.

일반적인 요구 사항 중 하나는 다른 배열을 유지할 수 있는 빈 배열을 생성하는 것입니다. 이러한 시나리오는 데이터를 다차원 구조로 정리해야 할 때 자주 발생합니다.

이 기사에서는 PowerShell에서 배열의 빈 배열을 생성하는 다양한 방법을 탐구합니다.

PowerShell의 배열 이해하기

빈 배열의 배열을 생성하기 전에 PowerShell에서 배열의 기본 개념을 이해하는 것이 중요합니다. PowerShell의 배열은 요소 모음을 저장하는 데이터 구조입니다.

이 요소들은 어떤 데이터 유형일 수 있으며, 배열은 필요에 따라 새로운 요소를 수용하기 위해 동적으로 크기를 조정할 수 있습니다. PowerShell은 배열을 생성하고 액세스하고 내용을 수정하는 방법을 포함하여 배열 작업을 수행하는 여러 가지 방법을 제공합니다.

PowerShell에서 배열을 생성하는 기본 예는 다음과 같습니다:

 powershellCopy$myArray = @(1, 2, 3, 4, 5)
$myArray

이 예에서 $myArray는 다섯 개의 정수를 포함하는 배열로 할당됩니다.

출력:

PowerShell의 배열

PowerShell에서 배열은 다른 배열을 포함하는 등 어떤 유형의 요소도 포함할 수 있습니다. 배열의 배열, 즉 조각 배열은 여러 배열로 구성된 데이터 구조로, 기본 배열의 각 요소가 다른 배열을 포함합니다.

이 구조는 이질적인 데이터를 다차원 형식으로 저장하여 다양한 기준에 따라 요소를 더 쉽게 관리하고 액세스할 수 있게 합니다.

PowerShell의 배열은 0 인덱싱되며, 즉 첫 번째 요소는 인덱스 0을 사용하여 액세스하고 두 번째 요소는 인덱스 1을 사용하여 액세스합니다. PowerShell 배열은 동적으로 크기를 조정할 수 있어 데이터 관리의 유연성을 제공합니다.

@() 배열 서브 표현식 연산자를 사용하여 PowerShell에서 빈 배열의 배열 생성하기

@() 배열 서브 표현식 연산자는 PowerShell에서 다양한 배열 작업, 특히 빈 배열을 생성하기 위해 사용할 수 있는 다재다능한 도구입니다. 빈 배열의 배열을 생성하는 데 사용될 때 다른 배열을 요소로 포함할 수 있는 배열 컨테이너를 초기화합니다.

이 연산자를 사용하여 요소를 구분하기 위해 쉼표 ,를 사용하면 각 요소가 그 자체로 배열인 배열 구조를 구축할 수 있습니다.

@() 배열 서브 표현식 연산자를 사용하여 빈 배열의 배열을 생성하는 방법을 보여주는 코드 예제를 살펴보겠습니다.

 powershellCopy$arrayOfArrays = @()

여기에서는 @() 배열 서브 표현식 연산자를 사용하여 $arrayOfArrays라는 빈 배열을 초기화합니다. 이는 다른 배열을 포함할 수 있는 빈 배열 컨테이너를 생성합니다.

@() 연산자 내에 요소가 제공되지 않으므로 생성된 배열은 비어 있습니다.

빈 배열에 배열 추가하기

빈 배열의 배열을 생성한 후에는 개별 배열을 요소로 추가할 수 있습니다. 이는 보통 += 연산자를 사용하여 기존 배열에 요소를 추가하는 데 사용됩니다:

 powershellCopy$arrayOfArrays += , (1, 2, 3)
$arrayOfArrays += , (4, 5)
$arrayOfArrays += , (6, 7, 8, 9)

Write-Host "First Array:"
$arrayOfArrays[0]

Write-Host "Second Array:"
$arrayOfArrays[1]

Write-Host "Third Array:"
$arrayOfArrays[2]

이 코드 세그먼트에서는 $arrayOfArrays에 하위 배열을 추가합니다. 각 하위 배열이 단일 요소로 처리되도록 하려면 각 하위 배열 앞에 쉼표 ,를 붙입니다.

이것은 PowerShell이 하위 배열을 단일 배열로 연결하지 않도록 합니다. 각 하위 배열은 괄호로 묶여 있으며 쉼표로 구분됩니다.

유연성을 보여주기 위해 서로 다른 길이를 가진 세 개의 하위 배열을 추가합니다.

마지막으로 $arrayOfArrays의 내용을 표시하여 그 구조와 내용을 확인합니다. PowerShell은 배열을 출력하여 각 요소를 개별 하위 배열로 보여줍니다.

코드 출력:

PowerShell에서 @()를 사용하여 비어 있는 배열의 배열 만들기

출력은 $arrayOfArrays가 실제로 여러 개의 하위 배열을 포함하는 배열임을 보여주며, 각 하위 배열은 고유한 값 집합을 포함하고 있습니다. 이는 PowerShell에서 @() 배열 서브 표현식 연산자를 사용하여 빈 배열의 배열을 성공적으로 생성했음을 확인합니다.

New-Object Cmdlet과 System.Collections.ArrayList 클래스를 사용하여 PowerShell에서 빈 배열의 배열 생성하기

구조화된 데이터를 저장하기 위해 빈 배열의 배열을 생성하는 데 사용할 수 있는 또 다른 접근 방식은 System.Collections.ArrayList 클래스와 함께 New-Object cmdlet을 사용하는 것입니다.

PowerShell의 System.Collections.ArrayList 클래스는 유연하고 동적인 배열과 같은 데이터 구조를 제공합니다. New-Object cmdlet을 활용하면 이 클래스의 인스턴스를 생성하여 빈 배열을 만들 수 있습니다.

그 후에는 이 배열의 배열에 배열을 요소로 추가할 수 있습니다. 이 접근 방식은 동적 크기 조정과 배열의 효율적인 관리를 가능하게 하여 다양한 스크립팅 시나리오에 적합합니다.

이 접근 방식을 사용하여 빈 배열의 배열을 생성하는 방법을 살펴보겠습니다:

 powershellCopy$arrayOfArrays = New-Object System.Collections.ArrayList

여기에서는 New-Object cmdlet을 사용하여 System.Collections.ArrayList 클래스의 새 인스턴스를 생성합니다. 이는 다른 배열을 포함할 수 있는 빈 배열 컨테이너를 생성합니다.

변수 $arrayOfArrays는 이제 이 빈 ArrayList 객체를 참조합니다.

배열의 배열의 요소에 접근하기

빈 배열을 생성한 후 이제 필요에 따라 그 요소에 접근하고 조작할 수 있습니다:

 powershellCopy$arrayOfArrays.Add(@(11, 12, 13))
$arrayOfArrays.Add(@(14, 15))
$arrayOfArrays.Add(@(16, 17, 18, 19))

Write-Host "First Array:"
$arrayOfArrays[0]

Write-Host "Second Array:"
$arrayOfArrays[1]

Write-Host "Third Array:"
$arrayOfArrays[2]

이 코드 세그먼트에서는 $arrayOfArrays ArrayList 객체에 하위 배열을 추가합니다. 배열에 하위 배열을 추가하기 위해 ArrayList 객체의 .Add() 메서드를 사용합니다.

각 하위 배열은 단일 요소로 처리되도록 @() 내에 포함됩니다. 이 접근 방식의 유연성을 보여주기 위해 서로 다른 길이의 세 개의 하위 배열을 추가합니다.

마지막으로 $arrayOfArrays ArrayList 객체의 내용을 표시하여 그 구조와 내용을 확인합니다. PowerShell은 ArrayList를 출력하여 각 요소를 개별 하위 배열로 보여줍니다.

코드 출력:

파워쉘에서 System.Collections.ArrayList를 사용하여 배열의 빈 배열 만들기 {CODE_BLOCK_8}

출력은 $arrayOfArrays가 여러 개의 하위 배열을 포함하는 ArrayList임을 확인하며, 각 하위 배열은 고유한 값 세트를 포함합니다. 이는 PowerShell에서 System.Collections.ArrayList 클래스와 함께 New-Object cmdlet을 사용하여 빈 배열의 배열을 성공적으로 생성했음을 보여줍니다.

@{} 해시테이블을 사용하여 PowerShell에서 빈 배열의 배열 생성하기

PowerShell에서 해시테이블(@{})은 키-값 쌍을 저장하는 편리한 방법을 제공합니다. 일반적으로 키-값 쌍에 사용되지만, 각 키를 빈 배열에 연결하여 빈 배열의 배열을 생성하는 데도 해시테이블을 활용할 수 있습니다.

이 방법은 여러 배열을 관리하기 위한 명확한 조직 구조를 제공하며 배열 요소에 쉽게 접근하고 조작할 수 있게 합니다.

다음은 @{} 해시테이블 구문을 사용하여 빈 배열의 배열을 생성하는 방법입니다:

 powershellCopy$arrayOfArrays = @{}

배열의 배열에 요소 추가하기

이제 해시테이블 접근 방식을 사용하여 빈 배열의 배열을 생성했으므로 필요에 따라 그 요소에 접근하고 조작할 수 있습니다:

 powershellCopy$arrayOfArrays["Array1"] += @(1, 2, 3)
$arrayOfArrays["Array2"] += @(4, 5)
$arrayOfArrays["Array3"] += @(6, 7, 8, 9)
$arrayOfArrays

이 코드 세그먼트에서는 $arrayOfArrays 내의 빈 배열에 하위 배열을 추가합니다. 우리는 배열 인덱싱을 사용하여 각 빈 배열을 키("Array1", "Array2", "Array3")로 접근한 후, += 연산자를 사용하여 하위 배열을 추가합니다.

각 하위 배열은 단일 요소로 처리되도록 @() 내에 포함되어 있습니다.

마지막으로 $arrayOfArrays 해시테이블의 내용을 표시하여 그 구조와 내용을 확인합니다. PowerShell은 해시테이블을 출력하여 각 키-값 쌍을 보여주며, 여기에 값은 하위 배열을 포함하는 배열입니다.

코드 출력:

PowerShell에서 @{}를 사용하여 배열의 배열 비우기

출력은 $arrayOfArrays가 세 개의 키("Array1", "Array2", "Array3")를 포함하는 해시테이블임을 확인하며, 각 키는 고유한 값 세트를 포함하는 배열과 연결되어 있습니다.

결론

결론적으로, PowerShell에서 빈 배열의 배열을 생성하는 것은 스크립팅 및 자동화 작업에서 복잡한 데이터 구조를 관리하기 위한 다재다능함과 유연성을 제공합니다.

우리는 이를 달성하기 위한 세 가지 서로 다른 방법을 탐구했습니다: @() 배열 서브 표현식 연산자 사용, System.Collections.ArrayList 클래스를 가진 New-Object cmdlet 사용, 및 @{} 해시테이블 구문 재사용. 각 방법은 장점과 고려 사항을 제시하며, 서로 다른 선호도와 요구 사항을 충족합니다.

@() 배열 서브 표현식 연산자는 빈 배열을 효율적으로 생성하기 위해 네이티브 PowerShell 구문을 활용하는 간결하고 직접적인 접근 방식을 제공합니다. 한편, New-Object cmdlet과 System.Collections.ArrayList 클래스는 동적 크기 조정 및 관리 기능을 제공하여 빈번한 배열 조작이 필요한 시나리오에 적합합니다.

마지막으로 @{} 해시테이블 구문을 재사용하는 것은 비전형적일 수 있으나 특정 상황에서 단순성과 가독성을 제공합니다.

선택한 방법에 관계없이, 빈 배열의 배열 생성을 마스터하면 PowerShell 사용자가 강력한 스크립트 및 자동화를 개발하기 위한 필수 기술을 갖추게 됩니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
작가: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

관련 문장 - PowerShell Array