Auto Terminer La Saisie De L'Utilisateur PowerShell 2.0
J'ai une grande liste de données (plus de 1000 valeurs différentes) et je veux que l'utilisateur puisse sélectionner certaines valeurs de la liste à partir d'une console PowerShell.
Quel est le moyen le plus facile de l'intérieur de la console pour permettre à l'utilisateur de sélectionner rapidement des valeurs?
Je voudrais faire quelque chose comme de l'onglet de l'achèvement ou de la capacité à utiliser les touches fléchées pour faire défiler les valeurs, mais je ne suis pas sûr de la façon de faire une de ces choses.
Tout conseil serait grandement apprécié.
OriginalL'auteur esap120 | 2013-06-14
Vous devez vous connecter pour publier un commentaire.
PowerShell onglet achèvement peut être étendue à des paramètres personnalisés et les valeurs des paramètres (v3). Cependant, ce qui est une propriété des fonctions avancées. Vous pouvez utiliser le
ValidateSetAttribute
de le faire.Vérifier le Technet rubrique d'aide sur les fonctions avancées: http://technet.microsoft.com/en-us/library/hh847806.aspx
Vous pouvez remplacer le tabexpansion (v2) et tabexpansion2 (v3) de la fonction dans PowerShell pour la saisie semi-automatique des valeurs de paramètre à l'extérieur de fonctions avancées. Vous pouvez obtenir une définition de base de ce dans PowerShell v3 en exécutant
Voici un exemple montrant l'onglet personnalisé de l'expansion de la fonction.
http://www.powershellmagazine.com/2012/11/29/using-custom-argument-completers-in-powershell-3-0/
Mais, si vous voulez que l'utilisateur soit en mesure de la saisie semi-automatique des valeurs pour un
Read-Host
le type de saisie, vous devez écrire un proxy pourRead-Host
pour y parvenir.Vous pouvez, en option, regardez PowerTab module à http://powertab.codeplex.com/
Vous pouvez également regarder la PowerTab module. powertab.codeplex.com
OriginalL'auteur ravikanth
Pour les gens qui sont à la recherche d'un moyen de le faire et sont assez chanceux pour être à l'aide de PS v3 (et mes excuses pour tous ceux qui sont requis pour rester avec V2):
Le plus simple pour y parvenir est d'utiliser le "ValidateSet" option dans vos paramètres d'entrée.
ValidateSet renvoie une erreur si un utilisateur tente d'utiliser une autre entrée:
Il ajoute également de l'onglet de l'achèvement de votre fonction de ce paramètre. Et si c'est le PREMIER paramètre de votre fonction, vous n'avez même pas à taper "-noun" de l'onglet-complet pour faire des suggestions pour sa valeur.
OriginalL'auteur StevoInco