PowerShell
Kommentarbasierte Hilfe
Suche…
Einführung
PowerShell bietet einen Dokumentationsmechanismus, der als kommentarbasierte Hilfe bezeichnet wird. Es ermöglicht die Dokumentation von Skripten und Funktionen mit Code-Kommentaren. Kommentarbasierte Hilfe wird meistens in Kommentarblöcken geschrieben, die mehrere Hilfeschlüsselwörter enthalten. Hilfeschlüsselwörter beginnen mit Punkten und identifizieren Hilfeabschnitte, die durch Ausführen des Cmdlets Get-Help
angezeigt werden.
Funktionskommentare-basierte Hilfe
<#
.SYNOPSIS
Gets the content of an INI file.
.DESCRIPTION
Gets the content of an INI file and returns it as a hashtable.
.INPUTS
System.String
.OUTPUTS
System.Collections.Hashtable
.PARAMETER FilePath
Specifies the path to the input INI file.
.EXAMPLE
C:\PS>$IniContent = Get-IniContent -FilePath file.ini
C:\PS>$IniContent['Section1'].Key1
Gets the content of file.ini and access Key1 from Section1.
.LINK
Out-IniFile
#>
function Get-IniContent
{
[CmdletBinding()]
Param
(
[Parameter(Mandatory=$true,ValueFromPipeline=$true)]
[ValidateNotNullOrEmpty()]
[ValidateScript({(Test-Path $_) -and ((Get-Item $_).Extension -eq ".ini")})]
[System.String]$FilePath
)
# Initialize output hash table.
$ini = @{}
switch -regex -file $FilePath
{
"^\[(.+)\]$" # Section
{
$section = $matches[1]
$ini[$section] = @{}
$CommentCount = 0
}
"^(;.*)$" # Comment
{
if( !($section) )
{
$section = "No-Section"
$ini[$section] = @{}
}
$value = $matches[1]
$CommentCount = $CommentCount + 1
$name = "Comment" + $CommentCount
$ini[$section][$name] = $value
}
"(.+?)\s*=\s*(.*)" # Key
{
if( !($section) )
{
$section = "No-Section"
$ini[$section] = @{}
}
$name,$value = $matches[1..2]
$ini[$section][$name] = $value
}
}
return $ini
}
Die obige Funktionsdokumentation kann durch Ausführen von Get-Help -Name Get-IniContent -Full
:
Beachten Sie, dass die Kommentar-basierten Schlüsselwörter mit a beginnen .
passen Sie die Get-Help
Ergebnisabschnitte an.
Kommentar-basierte Hilfe
<#
.SYNOPSIS
Reads a CSV file and filters it.
.DESCRIPTION
The ReadUsersCsv.ps1 script reads a CSV file and filters it on the 'UserName' column.
.PARAMETER Path
Specifies the path of the CSV input file.
.INPUTS
None. You cannot pipe objects to ReadUsersCsv.ps1.
.OUTPUTS
None. ReadUsersCsv.ps1 does not generate any output.
.EXAMPLE
C:\PS> .\ReadUsersCsv.ps1 -Path C:\Temp\Users.csv -UserName j.doe
#>
Param
(
[Parameter(Mandatory=$true,ValueFromPipeline=$false)]
[System.String]
$Path,
[Parameter(Mandatory=$true,ValueFromPipeline=$false)]
[System.String]
$UserName
)
Import-Csv -Path $Path | Where-Object -FilterScript {$_.UserName -eq $UserName}
Die obige Skriptdokumentation kann durch Ausführen von Get-Help -Name ReadUsersCsv.ps1 -Full
angezeigt werden: