Как заставить параметр PSCmdlet bool работать как флаг?

Используя System.Management.Automation, вы можете создавать собственные PSCmdlets в C#. Теперь, если вы создадите логический параметр, подобный этому:

[Parameter()]
public bool ShowDefinition { get; set; }

Вы должны вызвать командлет следующим образом:

PS> Get-CustomValues -ShowDefinition 1

Но я бы хотел вызвать его, не передавая значение -ShowDefinition. Так же, как работает -Debug. Как это:

PS> Get-CustomValues -ShowDefinition

Как я могу это сделать?

1 ответ

ОК, я нашел ответ.

Вы должны использовать SwitchParameter.

[Parameter]
public SwitchParameter ShowDefinition { get; set; }

protected override void ProcessRecord(){
    if(ShowDefinition.ToBool()){
    ...
    }
}
Другие вопросы по тегам