Comment marquer un paramètre de commutateur comme obligatoires dans Powershell

Je suis sûr que je n'ai pas d'autres options que ce que j'ai découvert, mais j'ai voulu choisir le collectif internet cerveau.

Je préfère utiliser un [switch] paramètre lors du passage de valeurs booléennes les fonctions personnalisées. Cependant, j'ai quelques affaires dans lesquelles j'ai voulu marquer le paramètre de commutateur comme obligatoire. Ceci peut être accompli grâce à [parameter(Mandatory = $true)] sur le paramètre. Cependant, je n'aime vraiment pas l'INTERFACE utilisateur de l'invite qui s'affiche. Je préfère de beaucoup la levée d'une exception.

Mais, un commutateur peut être vrai ou faux, et le "IsPresent" le bien ne fait pas de distinction. Si je passe un paramètre de commutateur comme -exemple:$false, le passage des rapports qui $exemple.IsPresent est faux!

J'ai recours à l'aide d'un [bool]. Par exemple:

param
(
   [bool]$theValue = $(throw('You didn't specify the value!'))
);

Y a d'autres trucs que je peux tirer?

Pourquoi ne pas avoir deux interrupteurs? example et exampleOff. Puis, lorsque ni IsPresent jeter une erreur.

OriginalL'auteur Johnny Kauffman | 2011-08-29