programing

Powershell 함수에서 여러 항목을 반환하는 방법

subpage 2023. 8. 12. 10:21
반응형

Powershell 함수에서 여러 항목을 반환하는 방법

스크립트에서 SVN 외부 정의를 분해해야 하는 몇 가지 기능이 있습니다.다음 중 하나일 수 있습니다.<url> <path>,-r<rev> <url> <path>또는-r <rev> <url> <path>그리고 제가 데이터를 추출하기 위해 고안한 역학은 단지 두 줄 이상입니다. 그래서 저는 이것을 별도의 기능에 넣고 싶습니다.

하지만 그렇게 할 때, 저는 함수에 로컬인 관련 데이터를 포함하는 세 개의 변수를 갖게 되고, 그 세 개의 변수를 모두 호출자에게 전달할 방법을 찾지 못합니다.

적절한 프로그래밍 언어로 세 가지 값을 모두 포함하는 복합 유형을 반환할 수 있지만, 파워셸에서는 이를 수행하는 방법을 찾을 수 없습니다.물론, 저는 이것을 세 가지 기능으로 나눌 수 있지만, 저는 다시 DRY 규칙을 위반하게 되었습니다.

파워셸에서 뭘 할 수 있을까요?

저는 @Christian의 말에 동의하며, 다른 해결책을 추가합니다.

먼저 배열을 명시적으로 또는 암시적으로 사용하여 반환할 수 있습니다.

노골적으로

function ExplicitArray ()
{
  $myArray = @()

  $myArray += 12
  $myArray += "Blue"

  return ,$myArray
}

Clear-Host
$a = ExplicitArray
Write-Host "values from ExplicitArray are $($a[0]) and $($a[1])"

암묵리에

function ImplicitArray ()
{
  Write-Output 12

  Write-Output "Blue"
  return "green"
}

$b = ImplicitArray
Write-Host "values from ImplicitArray are $($b[0]), $($b[1]) and $($b[2])"

번째로 사용자 지정 개체를 반환할 수 있습니다.

짧은 형식

function ReturnObject ()
{
  $value = "" | Select-Object -Property number,color
  $value.Number = 12
  $value.color = "blue"
  return $value
}
$c = ReturnObject
Write-Host "values from ReturnObject are $($c.number) and $($c.color)"

학교 형태

function SchoolReturnObject ()
{
  $value = New-Object PsObject -Property @{color="blue" ; number="12"}
  Add-Member -InputObject $value –MemberType NoteProperty –Name "Verb" –value "eat"
  return $value
}
$d = SchoolReturnObject
Write-Host "values from SchoolReturnObject are $($d.number), $($d.color) and $($d.Verb)"

번째 참조에 의한 인수 사용

function addition ([int]$x, [int]$y, [ref]$R)
{
 $Res = $x + $y
 $R.value = $Res
}

$O1 = 1
$O2 = 2
$O3 = 0
addition $O1 $O2 ([ref]$O3)
Write-Host "values from addition $o1 and $o2 is $o3"

제가 질문을 잘못 이해하고 있는 것일 수도 있지만, 이것은 변수 목록을 반환하는 것과 마찬가지로 간단하며, 호출자는 변수에 각각을 할당합니다.그것은

> function test () {return @('a','c'),'b'}
> $a,$b = test

$a는 배열이고 $b는 문자 'b'입니다.

> $a 
a
c
> $b
b

의 배열을 반환할 수 있습니다.[string]그런 다음 발신자가 분할하거나 사용자 지정 개체를 반환하도록 하고 항상 분할을 수행합니다.

언급URL : https://stackoverflow.com/questions/12620375/how-to-return-several-items-from-a-powershell-function

반응형