Die PowerShell-Hilfe per Regex durchsuchen

Ein kleiner Nachteil der PowerShell-Hilfe ist, dass die Suchfunktion etwas flexibler sein könnte. Sehr praktisch ist z.B., dass die Eingabe von

dazu führt, dass alle Cmdlets und about_-Themen ausgegeben werden, in deren Name das Wort „Event“ enthalten ist. Sucht man in diesem Zusammenhang aber die Namen jener Variablen, die in einem Eventhandler eine Rolle spielen (etwa $Event oder $EventArgs) wird es schwieriger, da man dazu wissen muss, dass dies automatische Variablen sind, die im Thema about_automatic_variable beschrieben werden. Aber auch mit dieser Information ist die Anzeige einer Beschreibung dieser Variablen etwas umständlich, da man die Variablen in der Beschreibung sämtlicher Variablen lokalisieren muss.

Auch das Durchsuchen selber besitzt eine Besonderheit, die weniger zart beseitete PowerShell-Anwender schnell zum Aufgeben veranlassen dürfte. Der folgende Befehl gibt scheinbar den gesamten Hilfetext zurück:

Der Grund ist ganz einfach, dass help den gesamten Text als einen String liefert und damit der Treffer dazu führt, dass der gesamte Text zurückgegeben wird. Abhilfe schafft das Out-String-Cmdlet mit seinem Stream-Parameter:

Durch den folgenden Befehl werden nicht nur alle Zeilen ausgegeben, in denen das eine Event-Variable enthalten ist, dank dem praktischen Context-Parameter werden auch die zwei folgenden Zeilen ausgegeben:

Die folgende Function Select-Help durchsucht eine einzelne Hilfedatei nach einem Stichwort und gibt die Zeilen aus, in denen es enthalten ist.

Beim Aufruf muss eine Besonderheit beachtet werden. Damit die Pipeline-Bindung gegen ein Array funktioniert, muss das Array als Ganzes übergeben werden. Dazu wird der gesamte Ausdruck in runde Klammern gesetzt, die mit einem Komma eingeleitet werden:

Auch der folgende Befehl gibt die Beschreibung aller in der angegebenen Hilfedatei enthaltenen Event-Variablen aus:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.