PowerShell 함수에서 여러 항목을 반환하는 방법
- 배열을 사용하여 PowerShell 함수에서 여러 항목 반환하기
-
[PSCustomObject]
를 사용하여 PowerShell 함수에서 여러 항목 반환하기 - 해시 테이블을 사용하여 PowerShell 함수에서 여러 항목 반환하기
- 사용자 지정 개체를 사용하여 PowerShell 함수에서 여러 항목 반환하기
- 결론

PowerShell 함수 작업을 할 때 효율적으로 여러 값을 반환할 필요가 자주 발생합니다. 이를 위한 효과적인 접근법 중 하나는 배열, [PSCustomObject]
, 해시 테이블 또는 사용자 지정 개체를 사용하여 이러한 값을 캡슐화하고 표시하는 것입니다.
이 기사에서는 언급된 방법을 사용하여 PowerShell 함수에서 여러 항목을 반환하는 방법을 자세히 설명합니다. 각 방법에 대한 단계별 절차를 설명하고 구현 및 출력을 보여주는 코드 예제를 제공합니다.
배열을 사용하여 PowerShell 함수에서 여러 항목 반환하기
배열을 사용하여 PowerShell 함수에서 여러 값을 반환하려면, 다음 단계를 따르세요:
-
배열 변수 선언: 반환하려는 여러 값을 보유할 배열 변수를 함수 내에서 선언합니다.
-
배열 채우기: 반환하려는 원하는 값으로 배열을 채웁니다. 인덱싱을 사용하여 배열에 요소를 추가할 수 있습니다.
-
배열 반환: 채운 배열을 함수의 출력으로 반환합니다.
간단한 PowerShell 함수를 만들어 배열을 사용하여 여러 값을 반환해 봅시다.
function Get-MultipleValues {
$values = @()
$values += "Value1"
$values += "Value2"
$values += "Value3"
return $values
}
$resultArray = Get-MultipleValues
Write-Output "Values returned from the function:"
foreach ($value in $resultArray) {
Write-Output $value
}
출력:
Values returned from the function:
Value1
Value2
Value3
이 예제에서는 Get-MultipleValues
라는 함수가 있습니다. 함수 내에서 배열 변수 $values
를 선언합니다.
그 다음, 배열에 "Value1"
, "Value2"
, "Value3"
라는 세 값을 채웁니다. 마지막으로, 채운 배열을 함수의 출력으로 반환합니다.
함수를 호출할 때 결과를 변수($resultArray
)에 저장하고, 루프를 사용하여 배열 내부의 값을 표시합니다.
[PSCustomObject]
를 사용하여 PowerShell 함수에서 여러 항목 반환하기
PowerShell에서 사용자 지정 개체를 생성하기 위해 [PSCustomObject]
를 사용할 수도 있습니다. 개체에 대한 속성과 값을 정의할 수 있어, 함수에서 여러 값을 반환하는 데 적합한 선택이 됩니다.
[PSCustomObject]
를 사용하여 사용자 지정 개체를 만들려면, 속성과 해당 값들을 다음과 같이 정의하면 됩니다:
$customObject = [PSCustomObject]@{
Property1 = 'Value1'
Property2 = 'Value2'
...
}
PowerShell 함수에서 [PSCustomObject]
를 사용하여 여러 값을 반환하려면, PowerShell 함수를 정의하고 [PSCustomObject]
의 인스턴스를 만듭니다. 사용자 지정 개체 내에서 반환하려는 속성과 값을 정의합니다.
function Get-MultipleValues {
[CmdletBinding()]
param (
[string]$Value1,
[int]$Value2,
[string]$Value3
)
$resultObject = [PSCustomObject]@{
Name = $Value1
Age = $Value2
Address = $Value3
}
return $resultObject
}
이제 함수를 호출하여 여러 값을 포함하는 사용자 지정 개체를 검색할 수 있습니다.
$result = Get-MultipleValues -Value1 'Rohan' -Value2 21 -Value3 'UK'
Write-Output "Values returned from the function:"
foreach ($value in $result) {
Write-Output $value
}
출력:
Values returned from the function:
Name Age Address
---- --- -------
Rohan 21 UK
위의 PowerShell 코드에서는 Get-MultipleValues
라는 함수가 도입되었습니다. 이 함수는 [CmdletBinding()]
태그가 붙어 있어 일반 cmdlet 매개변수를 사용할 수 있음을 나타냅니다.
함수 내에서 세 개의 매개변수가 정의됩니다: $Value1
(문자열), $Value2
(정수), 그리고 $Value3
(문자열). 함수는 이러한 매개변수를 사용하여 $resultObject
라는 사용자 지정 개체를 구성하고, 이를 개체 내 속성 Name
, Age
, Address
에 할당합니다.
return $resultObject
문장은 이 사용자 지정 개체가 Get-MultipleValues
함수의 출력으로 반환되도록 보장합니다.
그 후, 스크립트는 Get-MultipleValues
함수를 호출하고 각 매개변수에 대한 값을 지정합니다: $Value1
은 'Rohan'
, $Value2
는 21
, $Value3
는 'UK'
로 설정됩니다. 제공된 매개변수 값을 통합한 결과 사용자 지정 개체는 변수 $result
에 저장됩니다.
그 후, 스크립트는 Write-Output
을 사용하여 콘솔에 메시지를 표시하고, $result
에 담긴 사용자 지정 개체의 속성을 순회하는 루프를 시작합니다. 각 속성에 대해 스크립트는 속성 이름과 해당 값을 콘솔에 표시합니다.
해시 테이블을 사용하여 PowerShell 함수에서 여러 항목 반환하기
PowerShell의 해시 테이블은 키-값 쌍의 순서가 없는 모음입니다. 각 키는 고유해야 하며, 연관된 값은 어떤 데이터 유형도 될 수 있습니다.
해시 테이블은 특정 키를 기반으로 데이터를 저장하고 검색해야 할 때 특히 유용하며, 정보를 조직하는 구조화된 방법을 제공합니다.
해시 테이블을 사용하여 PowerShell 함수에서 여러 값을 반환하려면 다음 단계를 따르세요:
-
해시 테이블 만들기: 반환하고자 하는 데이터를 나타내는 키-값 쌍을 저장하기 위해 함수 내에서 해시 테이블을 생성합니다.
해시 테이블은
@{}
를 사용하여 PowerShell에서 생성할 수 있습니다. 키와 값은{}
괄호 안에 배치됩니다.해시 테이블을 만드는 구문은 다음과 같습니다.
@{ <key> = <value>; [<key> = <value> ] ... }
-
키-값 쌍 추가: 고유한 키와 연관된 각 값을 해시 테이블에 추가합니다.
-
해시 테이블 반환: 채운 해시 테이블을 함수의 출력으로 반환합니다.
사용자라는 함수에서 여러 값을 반환하기 위해 해시 테이블을 사용하는 예제를 살펴봅시다.
코드:
function user() {
$hash = @{ Name = 'Rohan'; Age = 21; Address = 'UK' }
return $hash
}
$a = user
Write-Host "$($a.Name) is $($a.Age) and lives in $($a.Address)."
출력:
Rohan is 21 and lives in UK.
위의 코드를 보면, function
키워드를 사용하여 user()
라는 함수를 정의하고 있습니다. 이 함수 내에서 @{}
구문을 사용하여 해시 테이블 $hash
를 생성하며, 여기에는 세 개의 키-값 쌍이 포함되어 있습니다: Name
은 값 'Rohan'
, Age
는 값 21
, Address
는 값 'UK'
입니다.
return $hash
문장은 이 해시 테이블이 user()
함수의 출력임을 보장합니다.
그 후, 스크립트는 user()
함수를 호출하고 결과 해시 테이블을 변수 $a
에 할당합니다. 이는 $a
가 이제 user()
함수에서 반환된 해시 테이블을 보유하고 있음을 의미합니다.
마지막으로, Write-Host
cmdlet은 콘솔에 메시지를 표시하는 데 사용됩니다. 이 메시지는 $a
에 저장된 해시 테이블의 값을 포함하며, 각각의 Name
, Age
, Address
값에 접근하여 표시합니다.
이제 두 숫자의 합과 곱을 계산하고 해시 테이블을 사용하여 결과를 반환하는 또 다른 PowerShell 함수를 만들어 보겠습니다.
function Calculate-SumAndProduct {
param(
[int]$num1,
[int]$num2
)
$resultHashTable = @{
Sum = $num1 + $num2
Product = $num1 * $num2
}
return $resultHashTable
}
$inputNum1 = 5
$inputNum2 = 7
$result = Calculate-SumAndProduct -num1 $inputNum1 -num2 $inputNum2
Write-Output "Sum: $($result['Sum'])"
Write-Output "Product: $($result['Product'])"
출력:
Sum: 12
Product: 35
이 코드는 Calculate-SumAndProduct
라는 함수를 정의하며, 두 개의 int
매개변수 $num1
과 $num2
를 받습니다. 함수 내에서 @{}
구문을 사용하여 해시 테이블 $resultHashTable
이 생성됩니다.
이 해시 테이블에는 Sum
키에 $num1
과 $num2
의 합과, Product
키에 $num1
과 $num2
의 곱에 해당하는 값이 포함됩니다. 함수는 이후 이 해시 테이블을 반환하여 Calculate-SumAndProduct
함수의 출력으로 만듭니다.
그 다음 스크립트에서는 두 개의 입력 숫자가 정의됩니다: $inputNum1
는 값 5
, $inputNum2
는 값 7
입니다. Calculate-SumAndProduct
함수는 이러한 입력 숫자로 호출되며, 결과 해시 테이블은 $result
라는 변수에 저장됩니다.
마지막으로 스크립트는 해당 해시 테이블의 값을 접근하여 합과 곱 값을 표시하기 위해 Write-Output
cmdlet을 사용합니다.
사용자 지정 개체를 사용하여 PowerShell 함수에서 여러 항목 반환하기
PowerShell에서 사용자 지정 개체는 System.Management.Automation.PSCustomObject
클래스의 인스턴스입니다. 이를 통해 속성과 해당 속성과 연결된 값을 정의할 수 있어 실제 개체처럼 보이게 할 수 있습니다.
사용자 지정 개체는 유연성이 있으며 데이터를 구조화된 방식으로 조직하고 검색할 수 있게 해줍니다.
사용자 지정 개체를 사용하여 PowerShell 함수에서 여러 값을 반환하려면 다음 단계를 따르세요:
-
사용자 지정 개체 정의: 함수 내에서 사용자 지정 개체를 작성하고 반환하려는 값에 대한 속성을 정의합니다.
-
속성 값 할당: 반환하려는 값을 사용자 지정 개체의 속성에 할당합니다.
-
사용자 지정 개체 반환: 채운 사용자 지정 개체를 함수의 출력으로 반환합니다.
두 숫자의 합과 곱을 계산하고 사용자 지정 개체를 사용하여 결과를 반환하는 PowerShell 함수를 만들어 보겠습니다.
function Calculate-SumAndProduct {
param(
[int]$num1,
[int]$num2
)
$resultObject = New-Object PSObject
$resultObject | Add-Member -MemberType NoteProperty -Name "Sum" -Value ($num1 + $num2)
$resultObject | Add-Member -MemberType NoteProperty -Name "Product" -Value ($num1 * $num2)
return $resultObject
}
$inputNum1 = 5
$inputNum2 = 7
$result = Calculate-SumAndProduct -num1 $inputNum1 -num2 $inputNum2
Write-Output "Sum: $($result.Sum)"
Write-Output "Product: $($result.Product)"
출력:
Sum: 12
Product: 35
이 예제에서는 두 개의 입력 숫자($num1
과 $num2
)를 받는 Calculate-SumAndProduct
라는 함수가 정의되었습니다. 함수 내에서 $resultObject
라는 사용자 지정 개체를 만들고, 두 개의 속성(Sum
과 Product
)을 추가하며, 각각의 계산된 값을 할당합니다.
입력 숫자(5
와 7
)로 함수를 호출할 때 결과를 변수($result
)에 저장합니다. 그런 다음 결과 사용자 지정 개체의 속성에 접근하여 합과 곱을 표시합니다.
결론
이 기사는 배열, [PSCustomObject]
, 해시 테이블 및 사용자 지정 개체를 사용하여 함수에서 여러 값을 반환하는 다양한 기술을 탐구했습니다. 각 방법은 장점을 제공하며 스크립트의 특정 요구 사항에 따라 선택할 수 있습니다.
배열은 특히 데이터 항목이 유사한 유형이나 구조를 공유할 때 여러 값을 반환하는 간단한 방법을 제공합니다. [PSCustomObject]
는 이름이 지정된 속성으로 사용자 지정 개체를 생성할 수 있어 데이터를 반환하는 구조적인 접근 방식을 제공합니다.
해시 테이블은 특정 키를 기반으로 데이터 검색이 필요한 상황에서 뛰어난 성능을 발휘하며, 정보를 구조화하고 효율적으로 저장하는 솔루션을 제공합니다. [System.Management.Automation.PSCustomObject]
클래스를 사용하여 구축된 사용자 지정 개체는 유연성을 제공하며 실제 개체를 모방합니다.