de-DE/tutorials/Invoke-GetHelpTutorial.ps1
|
#an interactive tutorial for Get-Help Param( [switch]$Full, [switch]$Menu ) #region setup $script:tutorialParam = $PSBoundParameters $cmd = 'Get-Help' $title = "$($titleStyle)Erste Schritte mit $cmd$reset" #get version specific help $gpsHelp = Get-Help -Name Get-Process $onlineVer = $gpsHelp.relatedLinks.navigationLink[0].uri $exampleCode = if ($gpsHelp.examples.example[0].code) { $gpsHelp.examples.example[0].code.insert(0, ' ') } else { "$($gpsHelp.examples.example[0].introduction.Text[0].split("`n").foreach({$_.insert(0,' ')})| Out-String)" } if ($IsCoreCLR) { $psh = 'pwsh' $exampleRemarks = $gpsHelp.examples.example[0].introduction.text | Select-Object -Skip 2 $syntaxHighlight = 'Get-Process [{2}[{4}-Name{2}]{4} <System.String[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]' } else { $psh = 'powershell' $exampleRemarks = $gpsHelp.examples.example[0].remarks[0].text $syntaxHighlight = 'Get-Process [{2}[{4}-Name{2}]{4} <System.String[]>] [-ComputerName <System.String[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]' } #endregion #region content $Intro = @" {0}$cmd{1} ist eines der grundlegenden PowerShell‑Cmdlets, deren Verwendung Sie verstehen müssen. Sie werden diesen Befehl ständig verwenden. Sie sollten häufig in der Hilfe nachsehen. Jede neue Version von PowerShell kann neue Befehle, neue Parameter, neue Hilfe‑Beispiele einführen sowie Fehler in der Dokumentation korrigieren. Standardmäßig enthält PowerShell nur einen Teil der Hilfedokumentation. Microsoft aktualisiert die Hilfedateien ebenfalls periodisch, obwohl es keinen Benachrichtigungsmechanismus gibt. Nach jedem PowerShell‑Update und in regelmäßigen Abständen sollten Sie {0}Update-Help{1} ausführen. $prompt {0}Update-Help{1} Einige Fehler sind zu erwarten. "@ -f $cmdStyle, $reset $P1 = @" Beim Erlernen von PowerShell sollten Sie nicht versuchen, sich einzuprägen, wie ein PowerShell‑Befehl verwendet wird. Lernen Sie stattdessen, wie Sie seine Verwendung {2}entdecken{1}. Sie können das Cmdlet {0}$cmd{1} oder die Hilfsfunktion {2}help{1} verwenden, die dieselben Informationen wie das Cmdlet liefert, jedoch seitenweise Ausgabe bietet. $prompt {3}help{1} {4}Get-Process{1} "@ -f $cmdStyle,$reset,$highLight,$cmdStyle,$defaultTokenStyle $P2 = @" Die Ausgabeüberschriften sollten selbsterklärend sein. Sie können den Befehlsnamen {0}Name{1} sehen. NAME Get-Process "@ -f $highLight,$reset $P3 = @" Eine kurze {0}Kurzbeschreibung{1} oder Erklärung darüber, was der Befehl bewirkt. SYNOPSIS $($gpsHelp.Synopsis) "@ -f $highLight,$reset $P4 = @" Die Befehls{0}syntax{1}, die Sie auch mit {2}Get-Command{1} sehen können. SYNTAX $(($gpsHelp.syntax | Out-String).TrimEnd() -replace 'Get',' Get') "@ -f $highLight,$reset,$cmdStyle $P5 = @" Und eine ausführlichere {0}Beschreibung{1}. DESCRIPTION $(($gpsHelp.description[0] | Out-String).Trim()) ... "@ -f $highLight,$reset $P6 = @" Die Hilfe zu den meisten Befehlen enthält in der Regel ein oder mehrere Beispiele. Wenn Sie nur die Beispiele sehen möchten, können Sie Folgendes ausführen: $prompt {3}help{1} {4}Get-Process{1} {5}-examples{1} NAME Get-Process SYNOPSIS $($gpsHelp.Synopsis) {2}$($gpsHelp.examples.example[0].title){1} $(($exampleCode).TrimEnd()) $exampleRemarks .... "@ -f $cmdStyle,$reset,$highLight2,$cmdStyle,$defaultTokenStyle,$paramStyle $P7 = @" Schließlich können Sie jederzeit die aktuellste Hilfe abrufen, indem Sie den Parameter {0}-Online{1} verwenden. Wenn ein Online-Link vorhanden ist, wird dieser in Ihrem Standardbrowser geöffnet. Es ist nicht erforderlich, ihn zu verwenden, aber die Mehrheit der Befehle, die Sie verwenden werden, unterstützt diese Hilfefunktion. Der Online-Link wird unter RELATED LINKS angezeigt: RELATED LINKS {2}Online Version: $onlineVer{1} $(($gpsHelp.relatedLinks.navigationLink[1..5]).linkText.split("`n").Foreach({$_.insert(0,' ')})| Out-String) "@ -f $highLight,$reset,$highLight2 $P8 = @" Es ist sehr wichtig, dass Sie verstehen, wie man die Hilfesyntax interpretiert. SYNTAX $(((Get-Command Get-Process -Syntax).split("`n") | Select-Object -Skip 1 -First 3 | Foreach-Object {"`n $($_)"}) ) ... Jede Kombination von Parametern wird als {0}Parametersatz{1} bezeichnet. Sie können Parameter nicht zwischen verschiedenen Sätzen mischen. Im Moment können Sie CommonParameters ignorieren. "@ -f $highLight,$reset $P9 = @" Alles, was Sie in [ ] eingeschlossen sehen, gilt als {0}optional{2}. Das bedeutet, wenn Sie den {4}Id{2}-Parameter verwenden möchten, müssen Sie ihn angeben, da er nicht in [ ] eingeschlossen ist. SYNTAX $(($gpsHelp.syntax | Out-String).Trim()) $prompt {3}Get-Process{2} {4}-Id{2} {5}`$PID{2} "@ -f $highLight,$highLight3,$reset,$cmdStyle,$paramStyle,$varStyle $P10 = @" {0}`$PID{1} ist eine automatische Variable, deren Wert die Prozess-ID der aktuellen PowerShell-Sitzung ist. "@ -f $highLight,$reset $P10a = @" Wenn Sie die Syntax noch einmal betrachten, können Sie den {1}Name{4}-Parameter verwenden, ohne ihn eingeben zu müssen, da der Parametername in [ ] eingeschlossen ist. SYNTAX $syntaxHighlight Die Syntax zeigt Ihnen, dass der gesamte {1}Name{4}-Parameter optional ist, und wenn Sie ihn verwenden möchten, müssen Sie den Parameternamen nicht einmal angeben. Dies wird als {0}positionsabhängiger{4} Parameter bezeichnet. Der Text innerhalb der {2}< >{4} gibt an, welchen {0}Typ{4} von Parameterwert Sie verwenden sollen. System.String bedeutet Text. Wenn Sie {2}[]{4} als Teil des Typs sehen, zeigt dies an, dass der Parameter mehrere durch Kommas getrennte Werte akzeptiert. $prompt {3}Get-Process{4} {5}$psh,sys*{4} "@ -f $highLight,$highLight2,$highlight3,$cmdStyle,$reset,$defaultTokenStyle $P11 = @" Sie können jederzeit die Parameterdetails in der Hilfe anzeigen. Parameternamen können mit Platzhaltern angegeben werden. $prompt {0}help{3} {2}Get-Process{3} {1}-Parameter{3} {2}*name{3} "@ -f $cmdStyle,$paramStyle,$defaultTokenStyle,$reset $P12 = @" Sehen Sie, wie diese Parameter als positionsabhängig oder benannt definiert sind? Die Detailangaben zeigen auch an ob es sich um einen erforderlichen Parameter handelt. Vergleichen Sie diese Informationen damit, wie sie in der Hilfe angezeigt werden. $((Get-Command Get-Process -Syntax).split("`n") | where {$_ -match 'Name'} | Out-String) Wenn Sie alle PowerShell‑Prozesse und diejenigen sehen möchten, die mit {0}sys{1} beginnen UND den Benutzernamen anzeigen möchten, haben Sie eine Idee, welchen Befehl Sie eingeben würden? "@ -f $highLight2,$reset $P13 = @" $prompt {0}Get-Process{3} {1}$psh,sys*{3} {2}-IncludeUsername{3} "@ -f $cmdStyle,$defaultTokenStyle,$paramStyle,$reset $P14 = @" Je mehr Zeit Sie mit dem Lesen der Hilfe verbringen, desto einfacher wird es. "@ $P15 = @" Ein letztes Hilfethema, das Sie kennen sollten, sind die {0}about{4}-Themen. Dabei handelt es sich um Hilfedateien zu PowerShell‑Konzepten und -Terminologie. Alle diese Themen beginnen mit {1}about_{4}. Verwenden Sie den Befehl {2}help{4}, um sie anzuzeigen. Platzhalter sind erlaubt und PowerShell vervollständigt den Themennamen per Tab. $prompt {2}help{4} {3}about_parameters{4} Wenn Sie das schon länger nicht getan haben, führen Sie jetzt {2}Update-Help{4} aus. "@ -f $highLight,$highLight2,$cmdStyle,$defaultTokenStyle,$reset #endregion #region run the tutorial $pages = @( { Clear-Host $title $Intro $P1 $script:pg++ ; Pause $script:pg $pgCount }, { Clear-Host $P2 $script:pg++ ; Pause $script:pg $pgCount }, { $P3 $script:pg++ ; Pause $script:pg $pgCount }, { $P4 $script:pg++ ; Pause $script:pg $pgCount }, { Clear-Host $P5 $script:pg++ ; Pause $script:pg $pgCount }, { Clear-Host $P6 $script:pg++ ; Pause $script:pg $pgCount }, { Clear-Host $P7 $script:pg++ ; Pause $script:pg $pgCount }, { Clear-Host $P8 $script:pg++ ; Pause $script:pg $pgCount }, { Clear-Host $P9 Get-Process -Id $pid | Out-Host $script:pg++ ; Pause $script:pg $pgCount }, { $P10 $script:pg++ ; Pause $script:pg $pgCount }, { Clear-Host $P10a Get-Process -Name $psh, sys* | Out-Host $script:pg++ ; Pause $script:pg $pgCount }, { Clear-Host $P11 Get-Help -Name Get-Process -Parameter *name | Out-Host "$e[3A" $script:pg++ ; Pause $script:pg $pgCount }, { $P12 $script:pg++ ; Pause $script:pg $pgCount }, { Clear-Host $P13 Get-Process $psh,sys* -IncludeUserName | Out-Host $P14 $script:pg++ ; Pause $script:pg $pgCount }, { Clear-Host $P15 (Get-Help about_parameters).split("`n")[1..20] ; '...' $P16 $script:pg++ ; Pause $script:pg $pgCount } ) #keep a navigation page counter $pgCount = $pages.count <# There is an overlap in functionality between $i and $pg but they are separate counters because there may be times I need to display a "page" of information into two pages and want to maintain a page number. #> for ($script:i = 0; $script:i -lt $pages.count; $script:i++) { Invoke-Command -ScriptBlock $pages[$script:i] } #endregion if ($Full) { &$tutorials['Get-Member'] -Full } elseif ($menu) { Start-PSTutorial } |