In PowerShell 1.0, se si dispone di un parametro cmdlet di un tipo enum, qual è il metodo consigliato per verificare se l'utente ha specificato quel parametro sulla riga di comando del cmdlet? Ad esempio:Come determinare se è stato specificato un valore del parametro Cmdlet di PowerShell?
MyEnum : int { No = 0, Yes = 1, MaybeSo = 2 }
class DoSomethingCommand : PSCmdlet
...
private MyEnum isEnabled;
[Parameter(Mandatory = false)]
public MyEnum IsEnabled
{
get { return isEnabled; }
set { isEnabled = value; }
}
protected override void ProcessRecord()
{
// How do I know if the user passed -IsEnabled <value> to the cmdlet?
}
C'è un modo per farlo senza dover seminare isEnabled con un valore fittizio? Di default sarà uguale a 0, e non voglio dover seminare ogni parametro o aggiungere un valore fittizio al mio enum. Ho potenzialmente ottenuto molti cmdlet con 100 di parametri, ci deve essere un modo migliore. Questo è legato a this question ma stavo cercando un modo più pulito per farlo. Grazie.
@Jack paglia Se avete "potenzialmente avuto molti cmdlet con 100 di parametri", si potrebbe desiderare di guardare rompere alcune delle funzionalità che in su. Uno dei principali vantaggi di PowerShell è la rilevabilità e la presenza di un gran numero di parametri rende la scoperta di sé molto più difficile. –
@Steven, mi dispiace che possa essere stato fuorviante - non è ogni cmdlet che ha 100 di parametri :), ma molti cmdlet che risultano in molti parametri. Grazie per il tuo commento. –