如何使PSCmdlet bool参数像旗帜一样工作?

时间:2015-06-10 11:44:11

标签: c# powershell pscmdlet

使用System.Management.Automation可以在C#中创建自定义PSCmdlets。 现在,如果你创建这样的布尔参数:

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

您必须像这样调用cmdlet:

PS> Get-CustomValues -ShowDefinition 1

但是我想调用它而不将值传递给-ShowDefinition。与-Debug的工作方式相同。 像这样:

PS> Get-CustomValues -ShowDefinition

我该怎么做?

1 个答案:

答案 0 :(得分:3)

好的,我找到了答案。

您必须使用SwitchParameter。

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

protected override void ProcessRecord(){
    if(ShowDefinition.ToBool()){
    ...
    }
}