Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Kommandozeile und Befehlshistorie in PowerShell bearbeiten mit PSReadline

GNU Readline ist eine Bibliothek mit Funktionen zur Bearbeitung von Befehls- und Programmzeilen. Microsoft hat sie für PowerShell adaptiert und so den Bedienkomfort der Konsole deutlich erhöht. Davon profitieren Anwender besonders beim Zugriff auf die Historie der Kommandos sowie bei der Autovervollständigung.
Im Vergleich zur PowerShell ISE, die als grafischer Editor die Script-Entwickler mit einer Reihe von intelligenten Funktionen unterstützt, waren die Editiermöglichkeiten in der textorientierten PowerShell bisher beschränkt. Sie bot dabei kaum mehr als der alte Kommandointerpreter, speziell beim Wiederverwenden von Befehlen aus der History (siehe dazu: Get-History: PowerShell-Befehle wiederholen auf der Kommandozeile).
PSReadline seit Windows 10 an Bord
Microsoft bot zwar seit einiger Zeit PSReadline als separates Modul an, das man unter Windows 7/8 explizit installieren musste. Aber erst seit PowerShell 5.0 gehört es zum Lieferumfang. Unter Windows 10 und Server 2016 ist es somit automatisch vorhanden. Bei älteren Versionen des Betriebssystems erhält man es jetzt am einfachsten, indem man die aktuelle PowerShell über WMF nachinstalliert.
PSReadline definiert eine Fülle von Tastenkombinationen, die sich vermutlich nur Emacs-Gurus komplett merken können. Aber selbst wenn man davon nur eine Handvoll verwendet, kann man sich das Leben auf der Kommandozeile schon wesentlich leichter machen.
Unterstützung für Copy & Paste, Rückgängig
Keiner Gedächtnisleistung bedarf es, um die Tastenkombinationen für Rückgängig, Kopieren und Einfügen oder Ausschneiden zu behalten. Diese sind nämlich gleich wie bei den GUI-Anwendungen, also STRG + Z, STRG + C, STRG + V und STRG + X. Auch das Markieren von Text funktioniert wie gewohnt über STRG + Pfeil links / rechts.
Erweiterte Autovervollständigung
PowerShell selbst bietet eine automatische Vervollständigung von Cmdlet- und Parameternamen. Mit Tab bzw. STRG + Tab rotiert man vorwärts oder rückwärts durch die Liste. Bei Cmdlets mit sehr vielen Parametern ist das nicht sehr praktisch, vor allem dann, wenn man sich erst einen Überblick verschaffen möchte.
PSReadline bietet hier mit STRG + Leertaste eine Alternative. Diese Kombination zeigt eine Liste aller Parameter, durch die man sich mit den Pfeiltasten bewegen kann. Der gerade markierte wird dann automatisch in die Befehlszeile übernommen.

Dieses Verfahren funktioniert auch für die vorgegebenen Werte eines Parameters, beispielsweise für ErrorAction. Möchte man sich auf diese Weise etwa für Get-CimInstance die WMI-Klassen anzeigen lassen, dann sollte man diese Liste durch Eingabe der ersten Buchstaben eingrenzen, andernfalls erhält man hunderte Namen.
