Automatische Eingabe der Benutzereingabe PowerShell 2.0

8

Ich habe eine große Datenliste (über 1000 verschiedene Werte) und möchte, dass der Benutzer bestimmte Werte aus der Liste einer PowerShell-Konsole auswählen kann.

Was ist der einfachste Weg innerhalb der Konsole, damit der Benutzer schnell Werte auswählen kann?

Ich möchte etwas wie Tab-Vervollständigung oder die Fähigkeit, die Pfeiltasten zu verwenden, um durch die Werte zu scrollen, aber ich bin nicht sicher, wie Sie eines dieser Dinge tun.

Jeder Rat würde sehr geschätzt werden.

    
esap120 14.06.2013, 18:06
quelle

2 Antworten

7

Die Fertigstellung der PowerShell-Registerkarte kann auf benutzerdefinierte Parameter und Parameterwerte (in v3) erweitert werden. Dies ist jedoch eine Eigenschaft von erweiterten Funktionen. Sie können das ValidateSetAttribute dazu verwenden.

Überprüfen Sie das Technet-Hilfethema zu erweiterten Funktionen: Ссылка

Sie können die Funktionen tabexpansion (v2) und tabexpansion2 (v3) in PowerShell ersetzen, um Parameterwerte außerhalb von erweiterten Funktionen automatisch zu vervollständigen. Sie können eine grundlegende Definition davon in PowerShell v3 erhalten, indem Sie

ausführen %Vor%

Hier ist ein Beispiel für die Anzeige der benutzerdefinierten Tab-Erweiterungsfunktion.

Ссылка

Wenn Sie jedoch möchten, dass der Benutzer Werte für eine Read-Host Art von Eingabe automatisch vervollständigen kann, müssen Sie einen Proxy für Read-Host schreiben, um das zu erreichen.

Sie können das PowerTab-Modul unter Ссылка

ansehen     
ravikanth 15.06.2013, 04:22
quelle
1

Für Leute, die nach einer Möglichkeit suchen, dies zu tun und das Glück haben, PS v3 zu benutzen (und ich entschuldige mich für all die, die für V2 notwendig sind):

Der einfachste Weg, dies zu erreichen, ist die Verwendung der Option "ValidateSet" in Ihren Eingabeparametern.

%Vor%

ValidateSet gibt einen Fehler aus, wenn ein Benutzer versucht, eine andere Eingabe zu verwenden:

%Vor%

Es fügt auch tab-Vervollständigung zu Ihrer Funktion für diesen Parameter hinzu. Und wenn es der erste Parameter für Ihre Funktion ist, müssen Sie nicht einmal "-noun" für die Tab-Complete eingeben, um Vorschläge für ihren Wert zu machen.

    
StevoInco 18.11.2013 20:09
quelle