PowerShell 함수에서 한 번에 여러 반환 값을 반환하는 예

1797 단어
본고는 PowerShell 함수를 사용자 정의할 때 함수를 되돌려주는 방법, 되돌려주는 값을 받는 방법, 상관없는 내용을 되돌려주는 값 그룹에 넣지 않는 방법을 소개한다.
PowerShell 함수체의 출력은 일반적으로 함수 호출자에게 되돌아오는 값으로 되돌아옵니다.여러 출력의 내용은 반환값 그룹에 저장됩니다.
예를 들어 다음과 같은 반환값 테스트 함수가 있는데,
 
  
function Test-ReturnValue
{
    1
    ‘Hello'
    return Get-Date
}

이 함수는 다음과 같은 세 개의 반환 값을 정의합니다.
 
  
PS> Test-ReturnValue
1
Hello
Saturday, November 2, 2013 12:52:13
PS> $result = Test-ReturnValue
PS> $result[0]
1

위의 호출을 통해 알 수 있듯이 직접 호출할 때, 수조처럼 세 줄로 나누어 모든 반환 값을 출력한다.$result를 변경해서 반환 값을 저장할 때 함수의 반환 값은 하나의 수조로 아래 0 표시부터 시작하고 0 -2는 세 요소의 아래 표시를 볼 수 있습니다.
다음에 우리가 함수에 제시적인 출력을 주고 싶지만 이 출력을 함수의 반환값에 넣고 싶지 않다면 어떻게 해야 실현할 수 있습니까?마이크로소프트는 이 두 cmdlet 출력의 내용이 컨솔 컨트롤러에 직접 표시되지 않고 되돌아오는 값 그룹에 들어가지 않도록 Write-Host 또는 Write-Warning을 사용하도록 권장합니다.
우리는 위의 함수를 약간 수정하여 두 줄의 제시적인 출력을 넣었다.

   function Test-ReturnValue 
  
{
    # Write-Host
    Write-Host ‘Starting' -ForegroundColor Green
    1
    ‘Hello'
    # Write-Warning
    Write-Warning ‘Almost done...'
    return Get-Date
}

그리고 실행 효과를 보면,
 
  
PS> Test-ReturnValue
Starting
1
Hello
WARNING: Almost done...
Saturday, November 2, 2013 12:54:11

PS> $result = Test-ReturnValue
Starting
WARNING: Almost done...


한 번은 직접 호출하고 한 번은 부치 호출입니다. 여러분은 그중의 차이를 이해하셨습니까?Write-Host와 Write-Warning, 콘솔에 직접 출력하는 것은 무엇입니까!
PowerShell 함수 반환값에 관하여 본고에서 이렇게 많은 것을 소개하였는데, 당신에게 도움이 되었으면 합니다. 감사합니다.

좋은 웹페이지 즐겨찾기