about_Comment_Based_Help
Краткое описание
Описывается, как писать справку на основе комментариев для функций и скриптов.
Подробное описание
Вы можете написать контент справки на основе комментариев для функций и сценариев с помощью специальных ключевых слов справки.
Командлет get-Help Get-Help
, такие как "Подробные", "Полные", "Примеры" и "Интернет", для отображения содержимого справки на основе комментариев.
Вы также можете создавать файлы справки на основе XML для функций и скриптов. Чтобы разрешить Get-Help
командлету найти XML-файл справки для функции или скрипта, используйте ключевое .EXTERNALHELP
слово. Без этого ключевого слова Get-Help
не может найти справочное содержимое, основанное на XML, для функций или скриптов.
В этом разделе объясняется, как написать содержимое справки для функций и скриптов. Сведения о том, как отобразить содержимое справки для функций и скриптов, см. Get-Help.
Командлеты Update-Help и Save-Help работают только в XML-файлах. Справка, поддающаяся обновлению, не поддерживает справочные материалы, основанные на комментариях.
Синтаксис справки на основе комментариев
Чтобы создать содержимое справки на основе комментариев, можно использовать любой стиль комментариев: однострочные примечания или блокировать комментарии.
Синтаксис справки на основе комментариев выглядит следующим образом:
# .<help keyword>
# <help content>
or
<#
.<help keyword>
<help content>
#>
Справка на основе комментариев написана в виде ряда комментариев. Вы можете ввести символ #
комментария перед каждой строкой комментариев или использовать <#
#>
символы для создания блока комментариев. Все строки в блоке комментариев интерпретируются как комментарии.
Все строки в разделе справки на основе комментариев должны быть смежными. Если раздел справки на основе комментариев следует за комментарием, который не является частью раздела справки, то между последней строкой комментариев, отличной от справки, и началом справки на основе комментариев должно быть по крайней мере одна пустая строка.
Ключевые слова определяют каждый раздел справки на основе комментариев. Каждое ключевое слово справки на основе комментариев предшествует точке .
. Ключевые слова могут отображаться в любом порядке. Имена ключевых слов не учитывает регистр.
Например, ключевое .Description
слово предшествует описанию функции или скрипта.
<#
.Description
Get-Function displays the name and syntax of all functions in the session.
#>
Блок комментариев должен содержать по крайней мере одно ключевое слово. Некоторые ключевые слова, например .EXAMPLE
, могут отображаться несколько раз в одном блоке комментариев. Содержимое справки для каждого ключевого слова начинается в строке после ключевого слова и может охватывать несколько строк.
Синтаксис справки на основе комментариев в функциях
Справка на основе комментариев для функции может отображаться в одном из трех расположений:
- В начале текста функции.
- В конце текста функции.
- Перед ключевым словом
function
. Между последней строкой справки функции и ключевым словомfunction
не может быть более одной пустой строки.
Например:
function Get-Function {
<#
.<help keyword>
<help content>
#>
# function logic
}
or
function Get-Function {
# function logic
<#
.<help keyword>
<help content>
#>
}
or
<#
.<help keyword>
<help content>
#>
function Get-Function { }
Синтаксис справки на основе комментариев в скриптах
Справка на основе комментариев для скрипта может отображаться в одном из следующих двух расположений в скрипте.
В начале файла скрипта. Справка по скрипту может предшествовать только примечаниям и пустым строкам.
Если первый элемент в тексте скрипта (после справки) является объявлением функции, между концем справки скрипта и объявлением функции должно быть не менее двух пустых строк. В противном случае справка интерпретируется как справка для функции, а не справка по скрипту.
В конце файла сценария. Однако если скрипт подписан, поместите справку на основе комментариев в начале файла скрипта. Конец скрипта занят блоком подписи.
Например:
<#
.<help keyword>
<help content>
#>
function Get-Function { }
or
function Get-Function { }
<#
.<help keyword>
<help content>
#>
Ключевые слова справки на основе комментариев
Ниже приведены допустимые ключевые слова справки на основе комментариев. Эти ключевые слова могут отображаться в любом порядке в контекстной справке, и они не учитывают регистр. Ключевые слова перечислены в этой статье в том порядке, в который они обычно отображаются в разделе справки.
.SYNOPSIS
Краткое описание функции или скрипта. Это ключевое слово можно использовать только один раз в каждом разделе.
.DESCRIPTION
Подробное описание функции или скрипта. Это ключевое слово можно использовать только один раз в каждом разделе.
.PARAMETER
Описание параметра. Добавьте ключевое .PARAMETER
слово для каждого параметра в синтаксисе функции или скрипта.
Введите имя параметра в той же строке, что и ключевое .PARAMETER
слово. Введите описание параметра в строках, приведенных ниже ключевого .PARAMETER
слова. Windows PowerShell интерпретирует весь текст между строкой .PARAMETER
и следующим ключевым словом или концом блока комментариев в рамках описания параметра.
Описание может включать разрывы абзаца.
.PARAMETER <Parameter-Name>
Ключевые слова параметров могут отображаться в любом порядке в блоке комментариев, но синтаксис функции или скрипта определяет порядок отображения параметров (и их описания) в разделе справки. Чтобы изменить порядок, измените синтаксис.
Можно также указать описание параметра, разместив комментарий в синтаксисе функции или скрипта непосредственно перед именем переменной параметра. Для работы этого необходимо также иметь блок комментариев с по крайней мере одним ключевым словом.
Если используется как комментарий синтаксиса, так и .PARAMETER
ключевое слово, используется описание, связанное с .PARAMETER
ключевым словом, и синтаксический комментарий игнорируется.
<#
.SYNOPSIS
Short description here
#>
function Verb-Noun {
[CmdletBinding()]
param (
# This is the same as .Parameter
[string]$Computername
)
# Verb the Noun on the computer
}
.EXAMPLE
Пример команды, которая использует функцию или скрипт, а также пример выходных данных и описание. Повторите это ключевое слово для каждого примера.
.INPUTS
Типы объектов .NET, которые можно передать в функцию или скрипт. Можно также включить описание входных объектов.
.OUTPUTS
Тип .NET объектов, возвращаемых командлетом. Можно также включить описание возвращаемых объектов.
.NOTES
Дополнительные сведения о функции или скрипте.
.LINK
Имя связанного раздела. Значение отображается в строке ниже ключевого слова ".LINK" и должно предшествовать символу #
комментария или включенному в блок комментариев.
Повторите ключевое слово для каждого связанного .LINK
раздела.
Это содержимое отображается в разделе "Связанные ссылки" раздела справки.
Содержимое .Link
ключевого слова также может включать универсальный идентификатор ресурса (URI) в веб-версию той же справки. Откроется онлайн-версия при использовании . Универсальный код ресурса (URI) должен начинаться с "http" или "https".
.COMPONENT
Имя технологии или функции, которая использует функцию или скрипт или к которой она связана. Параметр использует это значение для фильтрации результатов поиска, возвращаемыхGet-Help
.
.ROLE
Имя роли пользователя для раздела справки. Параметр использует это значение для фильтрации результатов поиска, возвращаемыхGet-Help
.
.FUNCTIONALITY
Ключевые слова, описывающие предполагаемое использование функции. Параметр использует это значение для фильтрации результатов поиска, возвращаемыхGet-Help
.
.FORWARDHELPTARGETNAME
Перенаправляется в раздел справки для указанной команды. Вы можете перенаправить пользователей в любой раздел справки, включая содержимое справки для функции, скрипта, командлета или провайдера.
# .FORWARDHELPTARGETNAME <Command-Name>
.FORWARDHELPCATEGORY
Указывает категорию справки элемента в .ForwardHelpTargetName
. Допустимые значения: Alias
, Cmdlet
, HelpFile
Function
Provider
General
FAQ
Glossary
ScriptCommand
ExternalScript
Filter
или .All
Используйте это ключевое слово, чтобы избежать конфликтов при наличии команд с тем же именем.
# .FORWARDHELPCATEGORY <Category>
.REMOTEHELPRUNSPACE
Указывает сеанс, содержащий раздел справки. Введите переменную, содержащую объект PSSession . Это ключевое слово используется командлетом Export-PSSession для поиска содержимого справки для экспортированных команд.
# .REMOTEHELPRUNSPACE <PSSession-variable>
.EXTERNALHELP
Указывает XML-файл справки для скрипта или функции.
# .EXTERNALHELP <XML Help File>
Ключевое .EXTERNALHELP
слово требуется, если функция или скрипт документируются в XML-файлах. Без этого ключевого слова Get-Help
не сможет найти XML-файл справки для функции или скрипта.
Ключевое .EXTERNALHELP
слово имеет приоритет над другими ключевыми словами справки на основе комментариев. Если .EXTERNALHELP
присутствует, Get-Help
не отображает справку на основе комментариев, даже если не удается найти раздел справки, соответствующий значению ключевого слова .EXTERNALHELP
.
Если функция экспортируется модулем, задайте значение ключевого .EXTERNALHELP
слова в имя файла без пути.
Get-Help
ищет указанное имя файла в подкаталоге для конкретного языка каталога модуля. Нет требований к имени XML-файла справки для функции, но рекомендуется использовать следующий формат:
<ScriptModule.psm1>-help.xml
Если функция не включена в модуль, добавьте путь к файлу справки, основанному на XML. Если значение содержит путь и путь содержит вложенные каталоги, зависящие от пользовательского интерфейса, Get-Help
выполняет поиск подкаталогов рекурсивно для XML-файла с именем скрипта или функции в соответствии со стандартами языка, установленными для Windows, так же, как и в каталоге модулей.
Дополнительные сведения о формате файла справки на основе XML командлетов см. в статье "Как написать справку по командлетам".
Автогенерированное содержимое
Имя, синтаксис, список параметров, таблица атрибутов параметров, общие параметры и примечания автоматически создаются командлетом Get-Help
.
Имя.
Раздел справки по имени функции взят из имени функции в синтаксисе функции. Имя раздела справки по скрипту берется из имени файла скрипта. Чтобы изменить имя или его заглавную букву, измените синтаксис функции или имя файла скрипта.
Синтаксис
Раздел синтаксиса раздела справки создается из синтаксиса функции или скрипта. Чтобы добавить подробные сведения в синтаксис раздела справки, например тип параметра .NET, добавьте сведения в синтаксис. Если тип параметра не указан, тип объекта
Список параметров
Список параметров в разделе справки создается из синтаксиса функции или скрипта и из описаний, добавляемых с помощью ключевого .Parameter
слова. Параметры функции отображаются в разделе "Параметры " раздела справки в том же порядке, что они отображаются в синтаксисе функции или скрипта.
Написание и заглавная буква имен параметров также взяты из синтаксиса. Это не влияет на имя параметра, указанное ключевым словом .Parameter
.
Общие параметры
Общие параметры добавляются в синтаксис и список параметров раздела справки, даже если они не влияют. Дополнительные сведения о распространенных параметрах см. в about_CommonParameters.
Таблица атрибутов параметров
Get-Help
создает таблицу атрибутов параметров, которая отображается при использовании параметра Full или Get-Help
. Значение атрибутов значения "Обязательный", "Позиция" и "Значение по умолчанию" берется из синтаксиса функции или скрипта.
Значения по умолчанию и значение для "Принимать подстановочные знаки" не отображаются в таблице атрибутов параметров, даже если они определены в функции или скрипте. Чтобы помочь пользователям, укажите эти сведения в описании параметра.
Замечания
Раздел "Примечания " раздела справки автоматически создается из имени функции или скрипта. Вы не можете изменить или повлиять на его содержимое.
Примеры
Справка на основе комментариев для функции
Следующая пример функции включает справку на основе комментариев:
function Add-Extension
{
param ([string]$Name,[string]$Extension = "txt")
$name = $name + "." + $extension
$name
<#
.SYNOPSIS
Adds a file name extension to a supplied name.
.DESCRIPTION
Adds a file name extension to a supplied name.
Takes any strings for the file name or extension.
.PARAMETER Name
Specifies the file name.
.PARAMETER Extension
Specifies the extension. "Txt" is the default.
.INPUTS
None. You can't pipe objects to Add-Extension.
.OUTPUTS
System.String. Add-Extension returns a string with the extension
or file name.
.EXAMPLE
PS> extension -name "File"
File.txt
.EXAMPLE
PS> extension -name "File" -extension "doc"
File.doc
.EXAMPLE
PS> extension "File" "doc"
File.doc
.LINK
http://www.fabrikam.com/extension.html
.LINK
Set-Item
#>
}
Результаты будут следующими:
Get-Help -Name "Add-Extension" -Full
NAME
Add-Extension
SYNOPSIS
Adds a file name extension to a supplied name.
SYNTAX
Add-Extension [[-Name] <String>] [[-Extension] <String>]
[<CommonParameters>]
DESCRIPTION
Adds a file name extension to a supplied name. Takes any strings for the
file name or extension.
PARAMETERS
-Name
Specifies the file name.
Required? false
Position? 0
Default value
Accept pipeline input? false
Accept wildcard characters?
-Extension
Specifies the extension. "Txt" is the default.
Required? false
Position? 1
Default value
Accept pipeline input? false
Accept wildcard characters?
<CommonParameters>
This cmdlet supports the common parameters: -Verbose, -Debug,
-ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable,
-OutBuffer and -OutVariable. For more information, type
"get-help about_commonparameters".
INPUTS
None. You can't pipe objects to Add-Extension.
OUTPUTS
System.String. Add-Extension returns a string with the extension or
file name.
Example 1
PS> extension -name "File"
File.txt
Example 2
PS> extension -name "File" -extension "doc"
File.doc
Example 3
PS> extension "File" "doc"
File.doc
RELATED LINKS
http://www.fabrikam.com/extension.html
Set-Item
Описание параметров в синтаксисе функции
Этот пример аналогичен предыдущему, за исключением того, что описания параметров вставляются в синтаксис функции. Этот формат наиболее полезен при кратком выполнении описаний.
function Add-Extension
{
param
(
[string]
#Specifies the file name.
$name,
[string]
#Specifies the file name extension. "Txt" is the default.
$extension = "txt"
)
$name = $name + "." + $extension
$name
<#
.SYNOPSIS
Adds a file name extension to a supplied name.
.DESCRIPTION
Adds a file name extension to a supplied name. Takes any strings for the
file name or extension.
.INPUTS
None. You can't pipe objects to Add-Extension.
.OUTPUTS
System.String. Add-Extension returns a string with the extension or
file name.
.EXAMPLE
PS> extension -name "File"
File.txt
.EXAMPLE
PS> extension -name "File" -extension "doc"
File.doc
.EXAMPLE
PS> extension "File" "doc"
File.doc
.LINK
http://www.fabrikam.com/extension.html
.LINK
Set-Item
#>
}
Справка на основе комментариев для скрипта
Следующий пример сценария включает справку на основе комментариев. Обратите внимание на пустые строки между закрытием #>
и оператором Param
. В скрипте, который не содержит инструкции Param
, между окончательным комментарием в разделе справки и первым объявлением функции должно быть не менее двух пустых строк. Без этих пустых строк Get-Help
связывает раздел справки с функцией, а не скриптом.
<#
.SYNOPSIS
Performs monthly data updates.
.DESCRIPTION
The Update-Month.ps1 script updates the registry with new data generated
during the past month and generates a report.
.PARAMETER InputPath
Specifies the path to the CSV-based input file.
.PARAMETER OutputPath
Specifies the name and path for the CSV-based output file. By default,
MonthlyUpdates.ps1 generates a name from the date and time it runs, and
saves the output in the local directory.
.INPUTS
None. You can't pipe objects to Update-Month.ps1.
.OUTPUTS
None. Update-Month.ps1 doesn't generate any output.
.EXAMPLE
PS> .\Update-Month.ps1
.EXAMPLE
PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv
.EXAMPLE
PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv -outputPath `
C:\Reports\2009\January.csv
#>
param ([string]$InputPath, [string]$OutPutPath)
function Get-Data { }
...
Следующая команда получает справку по скрипту. Так как скрипт не находится в каталоге, который указан в переменной среды $env:Path
, команда Get-Help
, которая получает справку по скрипту, должна указать путь к скрипту.
Get-Help -Name .\update-month.ps1 -Full
# NAME
C:\ps-test\Update-Month.ps1
# SYNOPSIS
Performs monthly data updates.
# SYNTAX
C:\ps-test\Update-Month.ps1 [-InputPath] <String> [[-OutputPath]
<String>] [<CommonParameters>]
# DESCRIPTION
The Update-Month.ps1 script updates the registry with new data
generated during the past month and generates a report.
# PARAMETERS
-InputPath
Specifies the path to the CSV-based input file.
Required? true
Position? 0
Default value
Accept pipeline input? false
Accept wildcard characters?
-OutputPath
Specifies the name and path for the CSV-based output file. By
default, MonthlyUpdates.ps1 generates a name from the date
and time it runs, and saves the output in the local directory.
Required? false
Position? 1
Default value
Accept pipeline input? false
Accept wildcard characters?
<CommonParameters>
This cmdlet supports the common parameters: -Verbose, -Debug,
-ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable,
-OutBuffer and -OutVariable. For more information, type,
"get-help about_commonparameters".
# INPUTS
None. You can't pipe objects to Update-Month.ps1.
# OUTPUTS
None. Update-Month.ps1 doesn't generate any output.
Example 1
PS> .\Update-Month.ps1
Example 2
PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv
Example 3
PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv -outputPath
C:\Reports\2009\January.csv
# RELATED LINKS
Перенаправление в XML-файл
Содержимое справки на основе XML можно написать для функций и скриптов. Хотя помощь, основанная на комментариях, удобнее реализовать, для обновляемой справки и предоставления содержимого справки на нескольких языках требуется справка, основанная на XML.
В следующем примере показаны первые несколько строк скрипта Update-Month.ps1.
Скрипт использует ключевое .EXTERNALHELP
слово для указания пути к разделу справки на основе XML для скрипта.
Обратите внимание, что значение ключевого .EXTERNALHELP
слова отображается в той же строке, что и ключевое слово. Любое другое размещение неэффективно.
# .EXTERNALHELP C:\MyScripts\Update-Month-Help.xml
param ([string]$InputPath, [string]$OutPutPath)
function Get-Data { }
...
В следующих примерах показаны три допустимых размещения ключевого .EXTERNALHELP
слова в функции.
function Add-Extension {
# .EXTERNALHELP C:\ps-test\Add-Extension.xml
param ([string] $name, [string]$extension = "txt")
$name = $name + "." + $extension
$name
}
function Add-Extension {
param ([string] $name, [string]$extension = "txt")
$name = $name + "." + $extension
$name
# .EXTERNALHELP C:\ps-test\Add-Extension.xml
}
# .EXTERNALHELP C:\ps-test\Add-Extension.xml
function Add-Extension {
param ([string] $name, [string]$extension = "txt")
$name = $name + "." + $extension
$name
}
Перенаправление в другой раздел справки
Следующий код является фрагментом из начала встроенной функции справки в PowerShell, которая отображает один экран справки одновременно.
Так как раздел справки для 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},
...
Следующая команда использует эту функцию:
Get-Help -Name help
NAME
Get-Help
SYNOPSIS
Displays information about PowerShell cmdlets and concepts.
...
См. также
PowerShell