about_Functions_Cmdletbindingattribute

主题
    about_Functions_CmdletBindingAttribute

简短说明
    说明一个声明函数的属性,这种函数与已编译 cmdlet 有类似的功能。

详细说明
    在编写函数时,可以添加 CmdletBinding 属性,这样,Windows PowerShell 将按绑定已编译 
    cmdlet 的参数的方式来绑定函数的参数。声明此属性后,Windows PowerShell 还会设置 
    $PSCmdlet 自动变量。


    在使用 cmdlet 绑定时,未知形式参数和无匹配位置形式参数的位置实际参数会导致形式参数绑定失
    败。此外,使用 cmdlet 绑定的函数或脚本不使用 $args 变量。

    注意:已编译 cmdlet 使用必需的 Cmdlet 属性,该属性与本主题中说明的 CmdletBinding 属性
    类似。


    以下示例显示了一个函数结构,该函数指定 CmdletBinding 属性的所有可选参数。在此示例之后,
    对每个参数进行了简短说明。

        {
          [CmdletBinding(SupportsShouldProcess=<Boolean>,
                     ConfirmImpact=<String>,
                     DefaultParameterSetName=<String>)]

          Param ($Parameter1)
          Begin{}
          Process{}
          End{}
        }


  SupportsShouldProcess

      如果 SupportsShouldProcess 参数设置为 true,则表明函数支持调用 ShouldProcess 方法,
      该方法用于在函数对系统进行更改之前提示用户提供反馈。如果指定此实际参数,则函数会启用 
      Confirm 和 WhatIf 形式参数。
 

      有关如何确认请求的详细信息,请参阅 MSDN (Microsoft Developer Network) Library 中
      的"请求确认",网址为 https://go.microsoft.com/fwlink/?LinkId=136658。


  DefaultParameterSetName
 
      DefaultParameterSetName 实际参数指定形式参数集的名称,Windows PowerShell 在无法
      确定要使用的形式参数集时,将尝试使用该形式参数集。通过将每个参数集的唯一参数设置为必需参
      数,可避免此问题。


  ConfirmImpact

      ConfirmImpact 参数通过对 ShouldProcess 方法的调用指定何时应确认函数操作。只有在 
      ConfirmImpact 参数等于或大于 $ConfirmPreference 首选项变量的值时,对 
      ShouldProcess 方法的调用才会显示确认提示。(该参数的默认值为 Medium。)只有指定了 
      SupportsShouldProcess 参数,才能指定此参数。


另请参阅
    about_Functions_Advanced
    about_Functions_CmdletBindingAttribute
    about_Functions_ParameterAttributes