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
'programing' 카테고리의 다른 글
PL/SQL 개발자의 그리드 출력에서 numwidth를 설정하는 방법은 무엇입니까? (0) | 2023.08.17 |
---|---|
쓰리텐 사용법안드로이드 프로젝트의 ABP (0) | 2023.08.17 |
Git 분기 간 특정 폴더의 차이 (0) | 2023.08.12 |
CSS: 배경 색상의 배경 이미지 (0) | 2023.08.12 |
PowerShell에 관련 파일 포함 (0) | 2023.08.12 |