我有一个可选的布尔参数
[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
属性??)
有什么建议吗?
答案 0 :(得分:3)
使用$PSBoundParameters
自动变量:
if($PSBoundParameters.ContainsKey("MyBoolValue")){
$SomeVariable=$MyBoolValue
}