PowerShell如何添加自定义通用参数?

时间:2015-04-17 17:37:21

标签: powershell

我想让自定义-Force开关成为一个通用参数。

我有三个函数,每个函数都接受参数。

函数A调用函数B,函数B调用函数C

我想用自定义-Force参数调用函数A并将其作为公共参数传播,而不必执行以下操作:

function B() {

    [cmdletbinding()]

    param([switch] $Force)   

    # NOTE: THIS CHECK IS THE PART I WANT TO ELIMINATE
    # I WANT -Force TO BE PASSED ALONG AS A COMMON PARAMETER
    if ($Force) {
        C -Force
    }
    else {
        C
    }

}

2 个答案:

答案 0 :(得分:5)

我认为你不能使成为一个常见参数,但你可以这样做:

Function B() {

    [cmdletbinding()]

    param([switch] $Force)   

    C -Force:$Force

    }

}

答案 1 :(得分:1)

公共参数内置于PowerShell本身。您可能有兴趣知道-Force不是常见的参数,而是每个Cmdlet内置的开关。因此,如果要在所有Function / cmdlet中实现-Force,则可以通过为每个cmdlet定义switch参数来使用正确的路径。

供您参考,以下是常用参数列表。

-Debug (db)
-ErrorAction (ea)
-ErrorVariable (ev)
-OutVariable (ov)
-OutBuffer (ob)
-PipelineVariable (pv)
-Verbose (vb)
-WarningAction (wa)
-WarningVariable (wv

 risk mitigation parameters
-WhatIf (wi)
-Confirm (cf)