仅在使用参数Powershell时设置bool值

时间:2015-01-22 11:02:24

标签: powershell boolean optional-parameters

我有一个可选的布尔参数

[Parameter(Mandatory=$false,Position=15)]
[bool]$MyBoolValue,

我希望稍后在代码中设置我的变量:

$SomeVariable=$MyBoolValue

但仅限于在cmdlet中设置参数

Do-MyStuff -Name blabla -MyBoolValue $false

如果cmdlet不包含参数

Do-MyStuff -Name blabla 

$SomeVariable应该保持不变(根据函数的其他元素,它可能是假的或真的)

我发现了这个:

if($MyBoolValue.IsPresent)
  {
  $SomeVariable=$MyBoolValue
  }

但它被完全忽略(没有.IsPresent属性??)

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

使用$PSBoundParameters自动变量:

if($PSBoundParameters.ContainsKey("MyBoolValue")){
    $SomeVariable=$MyBoolValue
}