항목
    about_Comment_Based_Help

간단한 설명
    함수 및 스크립트에 대한 설명 기반 도움말 항목을 작성하는 방법에 대해 설명합니다.

자세한 설명
    특수 도움말 설명 키워드를 사용하여 함수와 스크립트에 대한 설명 기반 도움말 항목을 작성할 수 있습니다. 

    Get-Help cmdlet은 XML 파일에서 생성되는 cmdlet 도움말 항목을 표시하는 것과 동일한 형식으로 설명 
    기반 도움말을 표시합니다. 사용자는 Detailed, Full, Example, Online 등의 Get-Help 
    매개 변수를 모두 사용하여 함수 및 스크립트 도움말을 표시할 수 있습니다.

    도움말 설명 키워드를 사용하여 스크립트 및 함수에 대한 XML 기반 도움말 파일을 작성하고 사용자를 다른 도움말 
    파일로 리디렉션할 수도 있습니다. 

    이 항목에서는 함수와 스크립트에 대한 도움말 항목을 작성하는 방법에 대해 설명합니다. 함수와 스크립트에 대한 
    도움말 항목을 표시하는 방법에 대한 자세한 내용은 Get-Help를 참조하십시오.


 설명 기반 도움말의 구문
    설명 기반 도움말의 구문은 다음과 같습니다.
        # .< help keyword>
        # <help content>
 
    -또는 -

        <#
            .< help keyword>
            < help content>
        #>


    설명 기반 도움말은 일련의 설명으로 작성됩니다. 각 설명 줄 앞에 설명 기호(#)를 입력하거나 "<#" 및 "#>" 기호를 
    사용하여 설명 블록을 만들 수 있습니다. 설명 블록 내의 모든 줄은 설명으로 해석됩니다.

    설명 기반 도움말 항목에 있는 모든 줄은 연속적이어야 합니다. 설명 기반 도움말 항목이 도움말 항목에 속하지 않은 
    설명 뒤에 나오는 경우, 도움말이 아닌 마지막 설명 줄과 설명 기반 도움말의 시작 부분 사이에 하나 이상의 빈 줄이 
    있어야 합니다.

    키워드는 설명 기반 도움말의 각 섹션을 정의합니다. 각 설명 기반 도움말 키워드 앞에는 점(.)이 오며, 키워드는 어떤 
    순서로든 나타날 수 있습니다. 키워드 이름은 대/소문자를 구분하지 않습니다.

    예를 들어, Description 키워드는 함수나 스크립트에 대한 설명 앞에 올 수 있습니다.

        <#
	    .Description
            Get-Function은 세션에 있는 모든 함수의 이름과 구문을 표시합니다.
        #>

    설명 블록에는 키워드가 하나 이상 포함되어야 합니다. EXAMPLE과 같은 일부 키워드는 동일한 설명 블록에 여러 번 
    나타날 수 있습니다. 각 키워드에 대한 도움말 내용은 키워드 다음 줄에서 시작하며 여러 줄에 표시될 수 있습니다. 



 함수에 대한 설명 기반 도움말의 구문

    함수에 대한 설명 기반 도움말은 다음 세 위치 중 하나에 나타날 수 있습니다.

        -- 함수 본문의 시작 부분

        -- 함수 본문의 끝 부분

        -- Function 키워드 앞. 함수 도움말의 마지막 줄과 Function 키워드 사이에 둘 이상의 빈 줄이 
           있을 수 없습니다. 

 

    예를 들면 다음과 같습니다.

        function MyFunction 
        {
            <#
            .< help keyword>
            < help content>
            #>

            <function commands>
        }


    -또는 -

        function MyFunction 
        {
            <function commands>

            <#
            .< help keyword>
            < help content>
            #>
        }

    -또는 -

        <#
        .< help keyword>
        < help content>
        #>
        function MyFunction { }



 스크립트에 대한 설명 기반 도움말의 구문

    스크립트에 대한 설명 기반 도움말은 스크립트에서 다음 두 위치 중 하나에 나타날 수 있습니다.

    -- 스크립트 파일의 시작 부분. 스크립트에서 스크립트 도움말 앞에는 설명과 빈 줄만 표시될 수 있습니다. 

    -- 스크립트 본문의 첫 번째 항목(도움말 뒤)이 함수 선언인 경우 스크립트 도움말의 끝 부분과 함수 선언 사이에는 둘 
       이상의 빈 줄이 있어야 합니다. 그렇지 않으면 도움말이 스크립트에 대한 도움말이 아니라 함수에 대한 도움말로 
       해석됩니다.

    -- 스크립트 파일의 끝 부분



    예를 들면 다음과 같습니다.

        <#
        .< help keyword>
        < help content>
        #>


        function MyFunction { }

    -또는-


        function MyFunction { }

        <#
        .< help keyword>
        < help content>
        #>



 설명 기반 도움말 키워드
    다음은 유효한 설명 기반 도움말 키워드로, 일반적으로 해당 용도와 함께 도움말 항목에 나타나는 
    순서로 나열되어 있습니다.
    이 키워드는 설명 기반 도움말에서 어떤 순서로든 나타날 수 있으며 대/소문자를 구분하지 않습니다.


    .SYNOPSIS
        함수나 스크립트에 대한 간단한 설명입니다. 이 키워드는 항목마다 한 번씩만 사용할 수 있습니다.

    .DESCRIPTION
        함수나 스크립트에 대한 자세한 설명입니다. 이 키워드는 항목마다 한 번씩만 사용할 수 있습니다.

    .PARAMETER <Parameter-Name>
        매개 변수에 대한 설명입니다. 함수 또는 스크립트 구문에는 각 매개 변수에 대한 Parameter 키워드가 포함될 수 
        있습니다.

        설명 블록에서 Parameter 키워드는 어떤 순서로든 나타날 수 있지만, 도움말 항목에서 매개 변수 및 매개 
        변수 설명이 나타나는 순서는 함수 또는 스크립트 구문에 따라 결정됩니다. 순서를 변경하려면 구문을 변경합니다.
 
        함수 또는 스크립트 구문에서 매개 변수 이름 바로 앞에 설명을 넣어 매개 변수 설명을 지정할 수도 있습니다.
        구문 설명과 Parameter 키워드를 모두 사용하는 경우 Parameter 키워드와 관련된 설명이 사용되고 
        구문 설명은 무시됩니다.

    .EXAMPLE
        함수나 스크립트를 사용하는 샘플 명령이며, 그 뒤에 샘플 출력과 설명이 올 수 있습니다. 각 예제에 대해 이 
        키워드를 반복합니다.

    .INPUTS
        함수나 스크립트로 파이프될 수 있는 Microsoft .NET Framework 유형의 개체입니다. 입력 개체에 대한 설명도
        포함할 수 있습니다.

    .OUTPUTS
        cmdlet에서 반환되는 .NET Framework 유형의 개체입니다. 반환된 개체에 대한 설명도 포함할 수 있습니다.

    .NOTES
        함수나 스크립트에 대한 추가 정보입니다.

    .LINK
        관련 항목의 이름입니다. 각 관련 항목에 대해 이 키워드를 반복합니다.

        이 내용은 도움말 항목의 관련 링크 섹션에 나타납니다.

        Link 키워드 내용에는 동일한 도움말 항목의 온라인 버전에 대한 URI(Uniform Resource Identifier)도 
        포함될 수 있습니다. Get-Help의 Online 매개 변수를 사용하면 온라인 버전이 열립니다. URI는 "http" 또는 
        "https"로 시작해야 합니다.

    .COMPONENT
        함수나 스크립트에 사용되거나 이와 관련된 기술 또는 기능입니다. Get-Help 명령에 Get-Help의 
        Component 매개 변수가 포함되면 이 내용이 나타납니다.

    .ROLE
        도움말 항목에 대한 사용자 역할입니다. Get-Help 명령에 Get-Help의 Role 매개 변수가 포함되면 
        이 내용이 나타납니다.

    .FUNCTIONALITY
        함수의 용도입니다. Get-Help 명령에 Get-Help의 Functionality 매개 변수가 포함되면 이 
        내용이 나타납니다.

    .FORWARDHELPTARGETNAME <Command-Name>
        지정된 명령에 대한 도움말 항목으로 리디렉션합니다. 함수, 스크립트, cmdlet 또는 공급자에 대한 도움말 항목을 
        포함하여 어떤 도움말 항목으로든 사용자를 리디렉션할 수 있습니다. 

    .FORWARDHELPCATEGORY <Category>
        ForwardHelpTargetName에서 항목의 도움말 범주를 지정합니다.
        유효한 값은 Alias, Cmdlet, HelpFile, Function, Provider, General, 
        FAQ, Glossary, ScriptCommand, ExternalScript, Filter 또는 
        All입니다. 이 키워드를 사용하여 같은 이름의 명령이 여러 개 있을 때 충돌을 방지합니다.

    .REMOTEHELPRUNSPACE <PSSession-variable>
        도움말 항목이 포함되는 세션을 지정합니다. PSSession이 포함된 변수를 입력합니다. Export-PSSession 
        cmdlet에서는 이 키워드를 사용하여 내보낸 명령에 대한 도움말 항목을 찾습니다.

    .EXTERNALHELP <XML Help File Path>
        스크립트나 함수에 대한 XML 기반 도움말 파일의 경로를 지정합니다. 

        Windows Vista 이상 버전의 Windows에서는 지정된 XML 파일 경로에 UI culture별 하위 
        디렉터리가 포함될 경우 Get-Help는 모든 XML 기반 도움말 항목과 마찬가지로 Windows Vista에 
        설정된 언어 대체 표준에 따라 하위 디렉터리에서 스크립트 또는 함수 이름이 있는 XML 파일을 재귀적으로 
        검색합니다. 

        cmdlet 도움말 XML 기반 도움말 파일 형식에 대한 자세한 내용은 MSDN(Microsoft Developer Network) 
        라이브러리의 "How to Create Cmdlet Help(Cmdlet 도움말 만드는 방법)"
        (https://go.microsoft.com/fwlink/?LinkID=123415)를 참조하십시오.


 자동 생성되는 내용
    이름, 구문, 매개 변수 목록, 매개 변수 특성 테이블, 일반 매개 변수 및 설명은 Get-Help cmdlet에서 자동으로 
    생성됩니다.

        이름: 
            함수 도움말 항목의 이름 섹션은 함수 구문의 함수 이름에서 가져오고, 스크립트 도움말 항목의 이름은 스크립트 
            파일 이름에서 가져옵니다. 이름 또는 이름의 대문자 표시를 변경하려면 함수 구문이나 스크립트 파일 이름을 
            변경합니다.
 
        구문: 
            도움말 항목의 구문 섹션은 함수 또는 스크립트 구문에서 생성됩니다. 매개 변수의 .NET Framework 유형과 같은 
            상세 정보를 도움말 항목 구문에 추가하려면 상세 정보를 구문에 추가합니다. 매개 변수 유형을 지정하지 
            않으면 "Object" 유형이 기본값으로 삽입됩니다.

        매개 변수 목록: 
            도움말 항목의 매개 변수 목록은 함수 또는 스크립트 구문과 매개 변수 키워드를 사용하여 추가하는 설명에서 
            생성됩니다. 함수 매개 변수는 함수 또는 스크립트 구문에 나타나는 것과 동일한 순서로 도움말 항목의 "매개 
            변수" 섹션에 나타냅니다. 매개 변수 이름의 철자와 대문자 표시도 구문에서 가져오며 Parameter 키워드를 통해 
            지정되는 매개 변수 이름의 영향을 받지 않습니다. 

        일반 매개 변수: 
            일반 매개 변수는 영향이 없더라도 도움말 항목의 구문과 매개 변수 목록에 추가됩니다. 일반 매개 변수에 대한 
            자세한 내용은 about_CommonParameters를 참조하십시오.

        매개 변수 특성 테이블: 
            Get-Help는 Get-Help의 Full 또는 Parameter 매개 변수를 사용할 때 나타나는 
            매개 변수 특성 테이블을 생성합니다. 필수 여부, 위치 및 기본값 특성의 값은 함수 또는 스크립트 구문에서 
            가져옵니다. 

        설명: 
            도움말 항목의 설명 섹션은 함수 또는 스크립트 이름에서 자동으로 생성됩니다. 내용을 변경하거나 내용에 
            영향을 줄 수 없습니다.



예제

    예 1: 함수에 대한 설명 기반 도움말

        다음 샘플 함수에는 설명 기반 도움말이 포함됩니다.

            function Add-Extension 
            {
                param ([string]$Name,[string]$Extension = "txt")
                $name = $name + "." + $extension
                $name

            <#
            .SYNOPSIS 
            제공된 이름에 파일 이름 확장명을 추가합니다.

            .DESCRIPTION
            제공된 이름에 파일 이름 확장명을 추가합니다. 파일 이름 또는 확장명으로 사용할 수 있는 문자열에는 제한이 
            없습니다.

            .PARAMETER Name
            파일 이름을 지정합니다.

            .PARAMETER Extension
            확장명을 지정합니다. 기본값은 "Txt"입니다.

            .INPUTS
            None. Add-Extension으로 개체를 파이프할 수 없습니다.

            .OUTPUTS
            System.String. Add-Extension은 확장명 또는 파일 이름을 포함한 문자열을 반환합니다.

            .EXAMPLE
            C:\PS> extension -name "File"
            File.txt

            .EXAMPLE
            C:\PS> extension -name "File" -extension "doc"
            File.doc

            .EXAMPLE
            C:\PS> extension "File" "doc"
            File.doc

            .LINK
            온라인 버전: http://www.fabrikam.com/extension.html

            .LINK
            Set-Item
            #>
            }



        결과는 다음과 같습니다.

        C:\PS> get-help add-extension -full

        이름
            Add-Extension
    
        개요
            제공된 이름에 파일 이름 확장명을 추가합니다.
    
        구문
            Add-Extension [[-Name] <String>] [[-Extension] <String>] [<CommonParameters>] 
        설명
            제공된 이름에 파일 이름 확장명을 추가합니다. 파일 이름 또는 확장명으로 사용할 수 있는 문자열에는 제한이 
            없습니다.
    
        매개 변수
           -Name
               파일 이름을 지정합니다.
        
               필수 여부                       false
               위치                            0
               기본값                
               파이프라인 입력 적용 여부       false
               와일드카드 문자 적용 여부  
        
           -Extension
               확장명을 지정합니다. 기본값은 "Txt"입니다.
        
               필수 여부                       false
               위치                            1
               기본값                
               파이프라인 입력 적용 여부       false
               와일드카드 문자 적용 여부  
        
            <CommonParameters>
               이 cmdlet은 -Verbose, -Debug, ErrorAction, 
               -ErrorVariable, -WarningAction, -WarningVariable, 
               OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용을 
               보려면 "get-help about_commonparameters"를 입력하십시오.
    

        입력
            None. Add-Extension으로 개체를 파이프할 수 없습니다.
    
        출력
            System.String. Add-Extension은 확장명 또는 파일 이름을 포함한 문자열을 반환합니다.
        
            -------------------------- 예제 1 -------------------------- 

            C:\PS> extension -name "File"
            File.txt
    
            -------------------------- 예제 2 -------------------------- 

            C:\PS> extension -name "File" -extension "doc"
            File.doc
    
            -------------------------- 예제 3 -------------------------- 

            C:\PS> extension "File" "doc"
            File.doc
    
        관련 링크
            온라인 버전: http://www.fabrikam.com/extension.html Set-Item



    예제 2: 함수 구문의 매개 변수 설명

        이 예제는 매개 변수 설명이 함수 구문에 삽입된다는 점을 제외하고 앞의 예와 동일합니다. 이 형식은 설명이 
        간략할 때 가장 유용합니다. 


        function Add-Extension 
        {
            param 
            (
                [string]
                # 파일 이름을 지정합니다.
                $name,

                [string]
                # 파일 이름 확장명을 지정합니다. 기본값은 "Txt"입니다.
                $extension = "txt"
            )
            $name = $name + "." + $extension
            $name
      
            <#
            .SYNOPSIS 
            제공된 이름에 파일 이름 확장명을 추가합니다.

            .DESCRIPTION
            제공된 이름에 파일 이름 확장명을 추가합니다. 파일 이름 또는 확장명으로 사용할 수 있는 문자열에는 제한이 
            없습니다.

            .INPUTS
            None. Add-Extension으로 개체를 파이프할 수 없습니다.

            .OUTPUTS
            System.String. Add-Extension은 확장명 또는 파일 이름을 포함한 문자열을 반환합니다.

            .EXAMPLE
            C:\PS> extension -name "File"
            File.txt

            .EXAMPLE
            C:\PS> extension -name "File" -extension "doc"
            File.doc

            .EXAMPLE
            C:\PS> extension "File" "doc"
            File.doc
 
            .LINK
            온라인 버전: http://www.fabrikam.com/extension.html

            .LINK
            Set-Item
            #>
        }




    예제 3: 스크립트에 대한 설명 기반 도움말

        다음 샘플 스크립트에는 설명 기반 도움말이 포함됩니다. 

        닫는 "#>" 및 Param 문 사이에 빈 줄이 있습니다. Param 문이 없는 스크립트에서는 도움말 항목의 
        마지막 설명과 첫 번째 함수 선언 사이에 둘 이상의 빈 줄이 있어야 합니다. 이 사이에 빈 줄이 없으면 Get-
        Help는 도움말 항목을 스크립트가 아닌 함수와 연결합니다.

           <#
           .SYNOPSIS 
           매월 데이터 업데이트를 수행합니다.

           .DESCRIPTION
           Update-Month.ps1 스크립트는 지난 달에 생성된 새 데이터로 레지스트리를 업데이트하고 보고서를 
           생성합니다.
    
           .PARAMETER InputPath
           CSV 기반 입력 파일의 경로를 지정합니다.

           .PARAMETER OutputPath
           CSV 기반 출력 파일의 이름과 경로를 지정합니다. 기본적으로 MonthlyUpdates.ps1은 실행 
           날짜와 시간으로 이름을 생성하고 로컬 디렉터리에 출력을 저장합니다.

           .INPUTS
           None. Update-Month.ps1로 개체를 파이프할 수 없습니다.

           .OUTPUTS
           None. Update-Month.ps1은 출력을 생성하지 않습니다.

           .EXAMPLE
           C:\PS> .\Update-Month.ps1

           .EXAMPLE
           C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv

           .EXAMPLE
           C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv -outputPath C:\Reports\2009\January.csv
           #>

           param ([string]$InputPath, [string]$OutPutPath)

           function Get-Data { }
           ...


        다음 명령은 스크립트 도움말을 가져옵니다. Path 환경 변수에 나열된 디렉터리에 스크립트가 없으므로 스크립트 
        도움말을 가져오는 Get-Help 명령이 스크립트 경로를 지정해야 합니다.


            PS C:\ps-test> get-help .\update-month.ps1 -full

            이름
                C:\ps-test\Update-Month.ps1
    
            개요
                매월 데이터 업데이트를 수행합니다.
    
            구문
                C:\ps-test\Update-Month.ps1 [-InputPath] <String> [[-OutputPath]
                <String>] [<CommonParameters>]
    
            설명
                Update-Month.ps1 스크립트는 지난 달에 생성된 새 데이터로 레지스트리를 업데이트하고 
                보고서를 생성합니다.
    
            매개 변수
               -InputPath
                   CSV 기반 입력 파일의 경로를 지정합니다.
        
                   필수 여부                    true
                   위치                         0
                   기본값                
                   파이프라인 입력 적용 여부    false
                   와일드카드 문자 적용 여부  
        
               -OutputPath
                   CSV 기반 출력 파일의 이름과 경로를 지정합니다. 기본적으로 MonthlyUpdates.p
                   s1은 실행 날짜와 시간으로 이름을 생성하고 로컬 디렉터리에 출력을 저장합니다.
        
                   필수 여부                    false
                   위치                         1
                   기본값                
                   파이프라인 입력 적용 여부    false
                   와일드카드 문자 적용 여부  

               <CommonParameters>
                   이 cmdlet은 -Verbose, -Debug, ErrorAction, 
                   -ErrorVariable, -WarningAction, -WarningVariable, 
                    OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 
                    내용을 보려면 "get-help about_commonparameters"를 입력하십시오.
    
            입력
                   없음. Update-Month.ps1로 개체를 파이프할 수 없습니다.
    
            출력
                   없음. Update-Month.ps1은 출력을 생성하지 않습니다.
    
    
            -------------------------- 예제 1 -------------------------- 

            C:\PS> .\Update-Month.ps1
    
            -------------------------- 예제 2 -------------------------- 

            C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv
    
            -------------------------- 예제 3 -------------------------- 

            C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv -outputPath 
            C:\Reports\2009\January.csv
        
            관련 링크



    예제 4: XML 파일로 리디렉션

        함수와 스크립트에 대한 XML 기반 도움말 항목을 작성할 수 있습니다. 설명 기반 도움말을 구현하는 것이 더 쉽지만 
        도움말 항목을 여러 언어로 번역하거나 도움말 항목을 보다 자세히 제어하려는 경우에는 XML 기반 도움말이 
        필요합니다. 

        다음 예에서는 Update-Month.ps1 스크립트의 처음 몇 줄을 보여 줍니다. 이 스크립트는 
        ExternalHelp 키워드를 사용하여 스크립트에 대한 XML 기반 도움말 항목의 경로를 지정합니다.


            # .ExternalHelp C:\MyScripts\Update-Month-Help.xml


            param ([string]$InputPath, [string]$OutPutPath)

            function Get-Data { }
            ...



       다음 예에서는 함수에 ExternalHelp 키워드를 사용하는 방법을 보여 줍니다.


            function Add-Extension 
            {
                param ([string] $name, [string]$extension = "txt") 
                $name = $name + "." + $extension $name
      
                # .ExternalHelp C:\ps-test\Add-Extension.xml 
            }


    예제 5: 다른 도움말 항목으로 리디렉션

        다음 코드는 한 번에 하나의 도움말 화면을 표시하는 Windows PowerShell 기본 제공 Help 
        함수의 시작 부분에서 발췌한 것입니다. Get-Help cmdlet에 대한 도움말 항목은 Help 함수를 
        설명하므로 Help 함수는 ForwardHelpTargetName 및 ForwardHelpCategory 
        키워드를 사용하여 사용자를 Get-Help cmdlet 도움말 항목으로 리디렉션합니다.

            function help 
            {

            <#
            .FORWARDHELPTARGETNAME Get-Help
            .FORWARDHELPCATEGORY Cmdlet
            #>
            [CmdletBinding(DefaultParameterSetName='AllUsersView')]
            param(
                [Parameter(Position=0, ValueFromPipelineByPropertyName=$true)]
                [System.String]
                ${Name},
                   ...


        다음 명령은 이 기능을 사용합니다.

            C:\PS> get-help help

            이름
                Get-Help

            개요
                Windows PowerShell cmdlet 및 개념에 대한 정보를 표시합니다.
            ...


참고 항목
    about_Functions
    about_Functions_Advanced_Parameters
    about_Scripts
    "How to Write Cmdlet Help(Cmdlet 도움말 작성 방법)" (https://go.microsoft.com/fwlink/?LinkID=123415)






목차