none
PowerShell 함수 파라미터 유효성검사 RRS feed

답변

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

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

     

    문의 하신 “PowerShell 함수 파라미터 유효성검사에 대한 답변을 드리겠습니다.

     

    Step 1 : 필수

     

     Parameter Mandatory를 이용해서 필수 파라미터를 설정할 수 있습니다.

    function ValidateParameters

    {

        param(

            [Parameter(Mandatory=$true)]       

            $requiredParameter   

        )

    }

     

    Step 2 : Regular Expression

     

    Regular Expression 을 이용해서 정확하게 입력 인자에 대한  유효성 검사를 할 수 있습니다.

    아래의 함수는 네자리의 숫자 인자를 허용합니다.

     

    function ValidateParameters

    {

        param(

            [Parameter()]

            [ValdatePattern("[0-9][0-9][0-9][0-9]")

            [string()]
           
    $FourNumber
        )
    }

     

    Step 3 : Null 값 허용

     

    AllowNull()을 이용해서 필수 항목으로 설정된 파라미터에 Null값을 허용을 합니다.

     

    function ValidateParameters

    {

        param(                    

           

            [Parameter(Mandatory=$true)] 

            [AllowNull()]             

            $AllowNull                 

        )

    }

     

    Step 4 : 숫자 범위

     

    ValidateRange()를 이용해서 숫자 인자의 범위를 설정할 수 있습니다.

     

    function ValidateParameters

    {

        param(

            [Parameter()]

            [ValidateRange(0,20)]

            [Int]

            $Count

        )

    }

     

    Step 5 : 지정된 문자열

     

    ValidateSet()을 이용해서 지정된 문자열 인수만 허용을 할 수 있습니다.

     

    function ValidateParameters

    {

        param(

            [Parameter()]

            [ValdateSet("Low", "Average", "High")]

            [string()]

            $FourNumber

        )

    }

     

    Step 6 : Script

     

    ValidateScript()를 이용해서 Script–ge, -gt, -le, -contains, Cmdlet을 이용해서 유효성 검사를 할 수 있습니다.

     

    function ValidateParameters

    {

        param(

            [Parameter()]

            [ValidateScript({$_ -ge (get-date)})]

            [DateTime]

            $EventDate

        )

    }

     

    참고 자료

    about_Functions_Advanced_Parameters

    http://technet.microsoft.com/en-us/library/dd347600.aspx

     

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

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

     

    • 답변으로 표시됨 김도남 2011년 10월 26일 수요일 오전 4:02
    2011년 10월 26일 수요일 오전 3:07
    중재자