none
PowerShell에서 함수 관리 RRS feed

답변

  • 안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “PowerShell에서 함수 관리에 대한 답변을 드리겠습니다.

                

     

     

    Step 1 : 기본

     

    PowerShell에서는 아래와 같은 형식으로 함수를 선언할 수 있습니다.

     

    function [<scope:>]<name> [([type]$parameter1[,[type]$parameter2])] 

    {…}

     

     

    아래의 함수는 Argument없이 단순히 문자열을 출력하는 함수 입니다.

     

    function func1

    {

        'func1'

    }

     

     

    함수를 생성을 하면 아래의 Script로 확인할 수 있습니다.

     

    dir function:

     

     

     

    Step2 : Parameter

     

    PowerShell에서는 함수에 Parameter를 선언할 수 있습니다. 형을 강제할 수 있고 기본값을 설정할 수 있습니다.

     

     

    아래의 Script는 형 제한이 없는 두개의 일반 Parameter를 가진 함수 입니다.

     

    function math-subject($value1, $value2)

    {

        $value1 - $value2

    }

     

    아래의 Script는 기본 값이 설정된 Paramete를 가진 함수 입니다.

     

    function math-subject($value1=10, $value2=5)

    {

        $value1 - $value2

    }

     

     

    아래의 Script는 기본값, 형 제한이 설정된 Parameter 가진 함수 입니다.

     

    function math-subject([int]$value1=10, [int]$value2=5)

    {

        $value1 - $value2

    }

     

    함수 사용시 아래와 int형이 인자를 설정하지 않고 문자열을 설정했을 경우 아래와 같은 에러가 발생을 합니다.

     

     

     

     

    아래의 Script switch 키워드를 이용해서 boolean 타입의 Parameter를 가진 함수 입니다.

     

    function math-subject([int]$value1=10, [int]$value2=5, [switch]$description)

    {

        $result = $value1 - $value2

       

        if($description)

        {

            Write-Host "$value1 - $value2 = $result"

        }

        else

        {

            $result

        }      

    }

     

    math-subject -Value1 10 -Value2 5 –Description

     

    10 - 5 = 5

     

     

    Step 2 : 제거

     

    Remove-Item 을 이용해서 생성한 함수를 제거할 수 있습니다.

     

    del function:afunc

     

     

    참고 자료

     

    about_functions

    http://technet.microsoft.com/ko-kr/library/dd347712.aspx

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    • 답변으로 표시됨 김도남 2011년 12월 22일 목요일 오전 7:15
    2011년 12월 21일 수요일 오전 5:01
    중재자