В PowerShell 1.0, если у меня есть параметр командлета типа enum, какой метод рекомендуется использовать для проверки того, указал ли пользователь этот параметр в командной строке командлета? Например:
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?
}
Есть ли способ сделать это без необходимости заполнения isEnabled фиктивным значением? По умолчанию он будет равен 0, и я не хочу заполнять каждый параметр или добавлять фиктивное значение в мое перечисление. У меня потенциально есть много командлетов с сотнями параметров, должен быть лучший способ. Это связано с этим вопросом, но я искал более чистый способ сделать это. Спасибо.
$PSBoundParameters.ContainsKey("paramater name")
можно использовать для проверки того, был ли указан параметр. - person Dave F   schedule 27.12.2018