Automatische Vervollständigung Von Benutzereingaben PowerShell 2.0
Ich habe eine große Liste von Daten (über 1000 unterschiedliche Werte) und ich möchten, dass der Benutzer in der Lage sein, zu wählen, bestimmte Werte aus der Liste aus einer PowerShell-Konsole.
Was ist der einfachste Weg über die Konsole, um dem Benutzer zu ermöglichen, schnell die Auswahl der Werte?
Ich würde gerne etwas tun, wie tab-Vervollständigung oder die Fähigkeit, verwenden Sie die Pfeiltasten, um einen Bildlauf durch die Werte, aber ich bin nicht sicher, wie Sie Sie zu tun, entweder von diesen Dingen.
Jede Beratung würde sehr geschätzt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
PowerShell-Registerkarte Fertigstellung können erweitert werden, um benutzerdefinierte parameter und parameter-Werte (in v3). Dies ist jedoch eine Eigenschaft der erweiterten Funktionen. Sie können die
ValidateSetAttribute
zu tun.Überprüfen Sie die Technet-Hilfe-Thema auf erweiterte Funktionen: http://technet.microsoft.com/en-us/library/hh847806.aspx
Können Sie ersetzen die tabexpansion (v2) und tabexpansion2 (v3) - Funktion in der PowerShell, um auto-vervollständigen " - parameter Werte außerhalb von erweiterten Funktionen. Sie können eine grundlegende definition dieser in der PowerShell v3 durch ausführen
Hier ist ein Beispiel zeigt benutzerdefinierten Registerkarte, die Funktion der Erweiterung.
http://www.powershellmagazine.com/2012/11/29/using-custom-argument-completers-in-powershell-3-0/
Aber, wenn Sie möchten die Benutzer in der Lage sein, um auto-vervollständigen-Werte für eine
Read-Host
Art der Eingabe ist, müssen Sie schreiben ein proxy fürRead-Host
zu erreichen.Können Sie, Optional, Blick auf Mehr.-Modul an http://powertab.codeplex.com/
Für Leute wer sind Suche nach einem Weg, dies zu tun und sind glücklich genug, um mit PS v3 (und ich entschuldige mich für alle diejenigen, die erforderlich sind, um zu bleiben mit V2):
Der einfachste Weg dies zu erreichen ist mit der "ValidateSet" - option in Ihrem input-Parameter.
ValidateSet wirft einen Fehler, wenn ein Benutzer versucht, jede andere Eingabe:
Es fügt auch tab-completion, um Ihre Funktion für diesen parameter. Und wenn der ERSTE parameter für Ihre Funktion, Sie haben nicht einmal zu geben "Nomen" für den tab-vervollständigen Vorschläge zu machen, für seinen Wert.