1. ホーム
  2. powershell

[解決済み] cmdletbinding()】とは何ですか、どのように機能するのですか?

2022-03-03 16:51:39

質問

によると get-help about_Functions_CmdletBindingAttribute

CmdletBinding属性は、関数をコンパイルされたコマンドレットのように動作させるための属性です。

スクリプトの先頭で使うことができます。 この場合の関数は何ですか?PowerShell エンジンがすべての入力に対して呼び出す内部暗黙の "main" 関数ですか?

この構文について。

[CmdletBinding(ConfirmImpact=<String>,
                     DefaultParameterSetName=<String>,
                     HelpURI=<URI>,
                     SupportsPaging=<Boolean>,
                     SupportsShouldProcess=<Boolean>,
                     PositionalBinding=<Boolean>)]

何をやっているのか? をインスタンス化しています。 cmdlbinding オブジェクトを作成し、そのコンストラクタに引数リストを渡していますか? この構文は param() - 例えば [Parameter(ValueFromPipeline=$true)] . この構文には特定の名前があり、他の場所で見つけることができるのでしょうか?

最後に、単純なPowerShellerとして、この機能を模倣し、属性を設定することでスクリプトの動作を変更することは可能でしょうか。

解決方法は?

CmdletBinding, Parameter などは、スクリプターが PowerShell の動作を定義するために使用できる特別な属性クラスです。例えば、ある関数を Cmdlet 機能を持つ Advanced 関数にすることができます。

を介して呼び出すと、例えば [CmdletBinding()] は、そのクラスの新しいインスタンスを初期化します。

CmdletBindingAttributeクラスの詳細については、以下をご覧ください。 MSDN

ParameterAttributeクラスの詳細については、以下をご覧ください。 MSDN

属性クラスの詳細 こちら こちら