about_Functions_Cmdletbindingattribute
主題
about_Functions_CmdletBindingAttribute
簡短描述
描述會宣告與編譯的 Cmdlet 作用類似之函數的屬性。
完整描述
如果在撰寫函數時新增 CmdletBinding 屬性,Windows PowerShell 就會以繫結編
譯的 Cmdlet 的同樣方式來繫結函數的參數。在宣告這個屬性後,Windows PowerShell
也會設定 $PSCmdlet 自動變數。
使用 Cmdlet 繫結時,如果有不明的參數以及沒有相符之位置參數的位置引數,就會導致
參數繫結作業失敗。此外,具有 Cmdlet 繫結的函數或指令碼也不使用 $args 變數。
注意:編譯的 Cmdlet 會使用必要的 Cmdlet 屬性,該屬性類似於本主題所述的
CmdletBinding 屬性。
下列範例示範函數的大綱,此函數會指定 CmdletBinding 屬性的所有選擇性引數。在
此範例後則提供每個引數的簡短描述。
{
[CmdletBinding(SupportsShouldProcess=<布林值>,
ConfirmImpact=<字串>,
DefaultParameterSetName=<字串>)]
Param ($Parameter1)
Begin{}
Process{}
End{}
}
SupportsShouldProcess
當 SupportsShouldProcess 引數設定為 true 時,代表函數支援對
ShouldProcess 方法的呼叫,該方法則會在函數對系統進行變更前用來提示使用者提
供意見反應。在指定此引數後,函數的 Confirm 和 WhatIf 參數就會啟用。
如需確認要求的詳細資訊,請參閱 MSDN (Microsoft Developer Network) 文件
庫中的<要求確認>(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