如何知道参数“whatif”是否已通过编程方式传递给客户cmdlet?

时间:2012-05-16 19:19:18

标签: c# .net powershell powershell-v2.0 cmdlets

我想知道是否已将whatif参数传递给cmdlet。

代表:remove-mycmdlet -whatif

我尝试通过查找变量的值来做到这一点: WhatIfPreference

但它总是产生错误。

请告诉我怎样才能知道是否传入了whatif参数?

非常感谢,

此致 纳雷什

1 个答案:

答案 0 :(得分:0)

当我定义这样的函数时:

function Test-WhatIf {
[CmdletBinding(SupportsShouldProcess = $true)]
param (
)

    $WhatIfPreference
    $PSBoundParameters.ContainsKey('WhatIf')
}

我得到$ false或$ true,具体取决于-WhatIf对命令的添加。 虽然这只是高级功能,但我不希望在编译命令中有不同的行为...你确定你已经正确实现了SupportsShouldProcess吗?