РАЗДЕЛ
    about_Comment_Based_Help

КРАТКОЕ ОПИСАНИЕ
    Описание написания разделов справки на основе комментариев для 
    функций и скриптов.

ПОЛНОЕ ОПИСАНИЕ
    С помощью специальных ключевых слов комментариев справки можно 
    писать разделы справки на основе комментариев для функций и скриптов. 

    Командлет Get-Help отображает содержимое справки на основе 
    комментариев в том же формате, в котором отображаются разделы 
    справки для командлетов, созданные из XML-файлов. Для просмотра 
    справки для функции или скрипта пользователи могут использовать 
    все параметры командлета Get-Help: Detailed, Full, Example и Online.

    Также с помощью специальных ключевых слов комментариев справки 
    можно писать файлы справки на основе XML-файлов для функций и 
    скриптов и перенаправлять пользователей в другой файл справки. 

    В этом разделе описано, как писать разделы справки для функций и 
    скриптов. Сведения об отображении разделов справки для функций и 
    скриптов см. в разделе Get-Help.


 СИНТАКСИС ДЛЯ СПРАВКИ НА ОСНОВЕ КОММЕНТАРИЕВ
    Синтаксис для справки на основе комментариев имеет следующий вид.
        # .< ключевое_слово_справки>
        # <содержимое_справки>
 
    -или:

        <#
            .< ключевое_слово_справки>
            < содержимое_справки>
        #>


    Справка на основе комментариев пишется как набор комментариев. 
    Можно вводить символ комментария (#) перед каждой строкой 
    комментариев или использовать символы "<#" и "#>" для создания 
    блока комментариев. Все строки, входящие в блок комментариев, 
    воспринимаются как комментарии.

    Все строки в разделе справки на основе комментариев должно идти 
    непрерывно. Если раздел справки на основе комментариев следует за 
    комментарием, не являющимся частью раздела, между последней 
    строкой этого комментария и началом справки должна присутствовать 
    хотя бы одна пустая строка.

    Ключевые слова определяют разделы справки на основе комментариев. 
    Перед каждым ключевым словом справки на основе комментариев 
    вводится точка (.). Ключевые слова можно вводить в любом порядке. 
    В именах ключевых слов не учитывается регистр.

    Например, ключевое слово Description предшествует описанию 
    функции или скрипта.

        <#
	    .Description
            Get-Function отображает имя и синтаксис всех функций в 
            рамках сеанса.
        #>

    В блоке комментариев должно содержаться хотя бы одно ключевое 
    слово. Некоторые ключевые слова, например EXAMPLE, могут 
    встречаться несколько раз в рамках одного блока комментариев. 
    Содержимое справки для каждого ключевого слова начинается со 
    строки, следующей за ключевым словом, и может занимать несколько 
    строк. 



 СИНТАКСИС ДЛЯ СПРАВКИ НА ОСНОВЕ КОММЕНТАРИЕВ В ФУНКЦИЯХ

    Справка на основе комментариев для функции может размещаться в 
    одной из трех областей:

        -- В начале тела функции.

        -- В конце тела функции.

        -- Перед ключевым словом Function. Между последней строкой 
           справки для функции и ключевым словом Function не может 
           быть больше одной пустой строки. 

 

    Пример:

        function MyFunction 
        {
            <#
            .< ключевое_слово_справки>
            < содержимое_справки>
            #>

            <команды функции>
        }


    -или:

        function MyFunction 
        {
            <команды функции>

            <#
            .< ключевое_слово_справки>
            < содержимое_справки>
            #>
        }

    -или:

        <#
        .< ключевое_слово_справки>
        < содержимое_справки>
        #>
        function MyFunction { }



 СИНТАКСИС ДЛЯ СПРАВКИ НА ОСНОВЕ КОММЕНТАРИЕВ В СКРИПТАХ

    Справка на основе комментариев для скрипта может размещаться в 
    одной из двух областей скрипта.

    -- В начале файла скрипта. При таком размещении перед справкой 
       для скрипта могут указываться только комментарии и пустые строки. 

    -- Если первый элемент тела скрипта (после справки) является 
       объявлением функции, между последней строкой справки для 
       скрипта и объявлением функции должны присутствовать хотя бы 
       две пустых строки. В противном случае справка интерпретируется 
       как справка для функции, а не справка для скрипта.

    -- В конце файла скрипта.



    Пример:

        <#
        .< ключевое_слово_справки>
        < содержимое_справки>
        #>


        function MyFunction { }

    -или-


        function MyFunction { }

        <#
        .< ключевое_слово_справки>
        < содержимое_справки>
        #>



 КЛЮЧЕВЫЕ СЛОВА СПРАВКИ НА ОСНОВЕ КОММЕНТАРИЕВ
    Ниже перечислены действительные ключевые слова справки на основе 
    комментариев. Перечисленные выполнено в том порядке, в котором 
    ключевые слова обычно появляются в разделе справки, для всех 
    ключевых слов приведено краткое описание.
    Эти ключевые слова могут появляться в справке на основе 
    комментариев в любом порядке, регистр символов не имеет значения.


    .SYNOPSIS
        Краткое описание функции или скрипта. Это ключевое слово 
        может использоваться в каждом разделе только один раз.

    .DESCRIPTION
        Подробное описание функции или скрипта. Это ключевое слово 
        может использоваться в каждом разделе только один раз.

    .PARAMETER <имя_параметра>
        Описание параметра. Ключевое слово Parameter может 
        указываться для каждого из параметров функции или скрипта.

        Ключевые слова Parameter могут появляться в блоке 
        комментариев в произвольном порядке, однако порядок 
        отображения параметров (и их описаний) в разделе справки 
        определяется синтаксисом функции или скрипта. Для изменения 
        порядка отображения необходимо изменить синтаксис.
 
        Можно также указать описание параметра, разместив комментарий 
        в коде функции или скрипта сразу после имени переменной параметра.
        При использовании комментария в коде и ключевого слова 
        Parameter будет использоваться описание, связанное с ключевым 
        словом Parameter, комментарий в коде будет проигнорирован.

    .EXAMPLE
        Пример команды, в которой используется функция или скрипт, за 
        которым может следовать пример выходных данных и описание. 
        Это ключевое слово необходимо повторить для каждого примера.

    .INPUTS
        Типы данных объектов платформы Microsoft .NET , которые могут быть 
        переданы функции или скрипту по конвейеру. Можно также 
        включить описание входных объектов.

    .OUTPUTS
        Типы данных объектов платформы .NET, возвращаемых 
        командлетом. Можно также включить описание возвращаемых объектов.

    .NOTES
        Дополнительные сведения о функции или скрипте.

    .LINK
        Имя связанного раздела. Это ключевое слово необходимо 
        повторить для каждого связанного раздела.

        Это содержимое отображается в подразделе "Ссылки по теме" 
        раздела справки.

        В содержимом ключевого слова Link может указываться URI на 
        интернет-версию того же раздела справки. Интернет-
        версия открывается при использовании параметра Online 
        командлета Get-Help. URI должен начинаться с "http" или "https".

    .COMPONENT
        Технология или функциональная возможность, которая 
        используется функцией или скриптом либо с которой связана 
        функция или скрипт. Это содержимое отображается в случае, 
        если команда Get-Help включает параметр Component командлета 
        Get-Help.

    .ROLE
        Роль пользователя для раздела справки. Это содержимое 
        отображается в случае, если команда Get-Help включает 
        параметр Role командлета Get-Help.

    .FUNCTIONALITY
        Предполагаемое использование функции. Это содержимое 
        отображается в случае, если команда Get-Help включает 
        параметр Functionality командлета Get-Help.

    .FORWARDHELPTARGETNAME <имя_команды>
        Обеспечивает перенаправление в раздел справки для указанной 
        команды. Можно выполнять перенаправление пользователей в 
        любой раздел справки, включая разделы справки для функции, 
        скрипта, командлета или поставщика. 

    .FORWARDHELPCATEGORY <категория>
        Задает категорию справки элемента в ForwardHelpTargetName.
        Допустимыми значениями являются Alias, Cmdlet, HelpFile, 
        Function, Provider, General, FAQ, Glossary, ScriptCommand, 
        ExternalScript, Filter или All. Используйте это ключевое 
        слово для предотвращения конфликтов при появлении команд с 
        одинаковыми именами.

    .REMOTEHELPRUNSPACE <переменная_сеанса_PSSession>
        Задает сеанс, в котором содержится раздел справки. Введите 
        переменную, которая содержит сеанс PSSession. Это ключевое 
        слово используется командлетом Export-PSSession для поиска 
        разделов справки для экспортируемых команд.

    .EXTERNALHELP <путь_к_XML-файлу_справки>
        Задает путь к файлу справки на основе XML для скрипта или 
        функции. 

        При работе с операционной системой Windows Vista или более 
        поздними версиями Windows если указанный путь к XML-файлу 
        содержит подкаталоги, определяемые культурой пользовательского
         интерфейса, Get-Help выполняет рекурсивный поиск XML-файла с 
         именем скрипта или функции по подкаталогам в соответствии со 
         стандартами резервного языка, установленными для Windows 
         Vista, как это и происходит для всех разделов справки на 
         основе XML. 

        Дополнительные сведения о формате файлов справки для 
        командлетов на основе XML см. в разделе "How to Write Cmdlet 
        Help" (Как писать справку для командлетов) в библиотеке MSDN
        по адресу https://go.microsoft.com/fwlink/?LinkID=123415.


 АВТОМАТИЧЕСКИ СГЕНЕРИРОВАННОЕ СОДЕРЖИМОЕ
    Имя, синтаксис, список параметров, таблица атрибутов параметров, 
    общие параметры и примечания автоматически генерируются 
    командлетом Get-Help.

        Имя: 
            Подраздел "Имя" раздела справки для функции заполняется 
            именем функции из синтаксиса функции. Подраздел "Имя" 
            раздела справки для скрипта заполняется именем файла 
            скрипта. Для изменения имени или преобразования его в 
            верхний реестр измените синтаксис функции или имя файла 
            скрипта.
 
        Синтаксис: 
            Подраздел "Синтаксис" раздела справки для функции 
            генерируется в соответствии с информацией о синтаксисе 
            функции или скрипта. Чтобы добавить подробную информацию 
            в раздел справки "Синтаксис", например тип данных 
            платформы .NET параметра, добавьте эту информацию в 
            синтаксис. Если тип параметра не указан, по умолчанию 
            используется значение типа "Объект".

        Список параметров: 
            Список параметров в разделе справки генерируется на 
            основании синтаксиса функции или скрипта, а также 
            описаний, добавленных с помощью ключевых слов Parameter. 
            Параметры функции отображаются в подразделе параметров 
            раздела справки в том же порядке, в котором они указаны в 
            синтаксисе функции или скрипта. Написание и реестр 
            символов в именах параметров также основано на 
            синтаксисе; на них не воздействует имя параметра, 
            заданное ключевым словом Parameter. 

        Общие параметры: 
            Общие параметры добавляются в синтаксис и список 
            параметров в разделе справки даже в том случае, если они 
            не указывают никакого воздействия. Дополнительные 
            сведения о типовых параметрах см. в разделе 
            about_CommonParameters.

        Таблица атрибутов параметров: 
            Командлет Get-Help генерирует таблицу атрибутов 
            параметров, которая отображается при использовании 
            параметров Full или Parameter командлета Get-Help. 
            Значения атрибутов "Необходимый", "Позиция" и "Значение 
            по умолчанию" основаны на синтаксисе функции или скрипта. 

        Примечания: 
            Подраздел "Примечания" раздела справки для функции 
            автоматически генерируется в соответствии с именем 
            функции или скрипта. Невозможно изменить содержимое этого 
            раздела или воздействовать на него.



 ПРИМЕРЫ

    Пример 1. Справка для функции на основе комментариев

        В следующем примере в код функции включена справка на основе 
        комментариев.

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

            <#
            .SYNOPSIS 
            Добавление расширения имени файла к переданному на вход имени.

            .DESCRIPTION
            Добавление расширения имени файла к переданному на вход 
            имени. Принимает любые строки в качестве имени файла или 
            расширения.

            .PARAMETER Name
            Задает имя файла.

            .PARAMETER Extension
            Задает расширение. По умолчанию используется расширение "Txt".

            .INPUTS
            Нет. Объекты не могут передаваться функции Add-Extension 
            по конвейеру.

            .OUTPUTS
            System.String. Функция Add-Extension возвращает строку с 
            расширением или именем файла.

            .EXAMPLE
            C:\PS> extension -name "файл"
            файл.txt

            .EXAMPLE
            C:\PS> extension -name "файл" -extension "doc"
            файл.doc

            .EXAMPLE
            C:\PS> extension "файл" "doc"
            файл.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>
               Данный командлет поддерживает общие параметры: 
               -Verbose, -Debug, ErrorAction, -ErrorVariable, 
               -WarningAction, -WarningVariable, OutBuffer и 
               -OutVariable. Чтобы получить дополнительные 
                сведения, введите команду "get-help 
                about_commonparameters".
    

        ВХОДНЫЕ ДАННЫЕ
            Нет. Объекты не могут передаваться функции Add-Extension 
            по конвейеру.
    
        ВЫХОДНЫЕ ДАННЫЕ
            System.String. Функция Add-Extension возвращает строку с 
            расширением или именем файла.
        
            -------------------------- ПРИМЕР 1 -------------------------- 
            C:\PS> extension -name "файл"
            файл.txt
    
            -------------------------- ПРИМЕР 2 -------------------------- 
            C:\PS> extension -name "файл" -extension "doc"
            файл.doc
    
            -------------------------- ПРИМЕР 3 -------------------------- 
            C:\PS> extension "файл" "doc"
            файл.doc
    
        ССЫЛКИ ПО ТЕМЕ
            Интернет-версия: http://www.fabrikam.com/extension.ht
            ml Set-Item



    Пример 2. Описание параметров в коде функции

        Этот пример похож на предыдущий за исключением того, что в 
        нем описания параметров вставлены в код функции. Такой формат 
        наиболее удобен при использовании кратких описаний. 


        function Add-Extension 
        {
            param 
            (
                [string]
                # Задает имя файла.
                $name,

                [string]
                # Задает расширение. По умолчанию используется 
                расширение "Txt".
                $extension = "txt"
            )
            $name = $name + "." + $extension
            $name
      
            <#
            .SYNOPSIS 
            Добавление расширения имени файла к переданному на вход имени.

            .DESCRIPTION
            Добавление расширения имени файла к переданному на вход 
            имени. Принимает любые строки в качестве имени файла или 
            расширения.

            .INPUTS
            Нет. Объекты не могут передаваться функции Add-Extension 
            по конвейеру.

            .OUTPUTS
            System.String. Функция Add-Extension возвращает строку с 
            расширением или именем файла.

            .EXAMPLE
            C:\PS> extension -name "файл"
            файл.txt

            .EXAMPLE
            C:\PS> extension -name "файл" -extension "doc"
            файл.doc

            .EXAMPLE
            C:\PS> extension "файл" "doc"
            файл.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
           Нет. Объекты не могут передаваться скрипту Update-Month.ps1
            по конвейеру.

           .OUTPUTS
           Нет. 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

            NAME
                C:\ps-test\Update-Month.ps1
    
            SYNOPSIS
                Выполняет ежемесячное обновление данных.
    
            СИНТАКСИС
                C:\ps-test\Update-Month.ps1 [-InputPath] <String> 
                [[-OutputPath] ]<String>] [<CommonParameters>]
    
            ОПИСАНИЕ
                Скрипт Update-Month.ps1 обновляет реестр, дополняя 
                его новыми данными, созданными в течение прошедшего 
                месяца, и генерирует отчет.
    
            ПАРАМЕТРЫ
               -InputPath
                   Задает путь к входному CSV-файлу.
        
                   Требуется?                    true
                   Позиция?                      0
                   Значение по умолчанию                
                   Принимать входные данные 
                   с конвейера?                  false
                   Принимать подстановочные знаки?  
        
               -OutputPath
                   Задает имя и путь к выходному CSV-файлу. По умолчанию 
                   MonthlyUpdates.ps1 формирует имя в соответствии с датой 
                   и временем запуска и сохраняет выходные данные в 
                   локальном каталоге.
        
                   Требуется?                    false
                   Позиция?                      1
                   Значение по умолчанию                
                   Принимать входные данные 
                   с конвейера?                  false
                   Принимать подстановочные знаки?  

               <CommonParameters>
                   Данный командлет поддерживает общие параметры: 
                   -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. Перенаправление в другой раздел справки

        Ниже представлен фрагмент кода, представляющий собой начало 
        встроенной функции Help в оболочке Windows PowerShell, 
        который обеспечивает постраничный вывод справки на экран. 
        Поскольку функция Help описывается в разделе справки для 
        командлета Get-Help, в этой функции используются ключевые слова 
        ForwardHelpTargetName и ForwardHelpCategory для перенаправления 
        пользователя в раздел справки для командлета Get-Help.

            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.
            ...


СМ. ТАКЖЕ
    about_Functions
    about_Functions_Advanced_Parameters
    about_Scripts
    "Написание справки для командлетов" (https://go.microsoft.com/fwlink/?LinkID=123415)







Содержание