2014-05-16 2 views
3
[Parameter (Mandatory=$False)] 
[ValidateSet("Val1", "Val2", "Val3", "Val4", "Val5",ignorecase=$true)] 
[string[]] $configs = "" 

Y at-il un moyen de modifier ce qui précède afin de pouvoir accepter plusieurs valeurs enum en une fois?Paramètres enum Powershell

J'espère pouvoir lancer le script comme si:.

\ MyAwesome-Script.ps1 -config Val1 Val2 (ou toute combinaison de valeurs ENUM en tant que paramètres)

Mais j'ai besoin ce pour être en mesure onglet complet, (est que même un mot?) aussi

pour être complet, j'utilise PS 4.0 et 3.1 PSCX est également installé

Répondre

7

assurez votre variable un tableau et ça va marcher ça va. Compte tenu de la fonction suivante:

function Test-ValidateSet 
{ 
    PARAM(
     [ValidateSet("Val1", "Val2", "Val3")] 
     [string[]]$MyParam 
    ) 

    foreach($value in $MyParam) 
    { 
     Write-Host "Parameter given: $value" 
    } 
} 

Pour la méthode ci-dessus, je reçois onglet -Achèvement sur le paramètre MyParam. Pour entrer un tableau pour le paramètre, séparez simplement les valeurs par des virgules.

Test-ValidateSet -MyParam Val1, Val2, Val3 

Cet onglet prend en charge -Achèvement à la fois la console PowerShell et l'PowerShell ISE.

+0

Désolé, a fait une petite édition. Votre réponse est presque identique à la mienne, mais seul le premier param est terminé. Ou est-ce la limite? – SteveMustafa

+0

Vous n'avez pas inclus la définition de paramètre réelle, donc je ne savais pas. Si vous utilisez l'ISE PowerShell et attendez la liste déroulante vous devez appuyer sur CTRL + ESPACE pour obtenir la liste déroulante pour les entrées supplémentaires, mais en appuyant sur Tab pour faire défiler les options devrait fonctionner très bien à la fois la console PowerShell et la PowerShell ISE (au moins les deux sur mon ordinateur). –

+0

Vous avez en effet raison. Mes excuses. Hmmm, le même comportement n'est pas exposé sur le mien. CTRL + ESPACE ne met en effet en bas d'une chute vers le bas, mais après la première valeur de ENUM est choisie, peut être utilisé aucune valeur ENUM d'addition pour ce même paramètre, même si je suis en train de remplir un tableau. – SteveMustafa

Questions connexes