PowerShell HelpFile - about_functions_advanced
 記事記号:[me1536] 初版:2011/May/10

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

トピック
    about_Functions_Advanced

簡易説明
    コマンドレットと同様に動作する高度な関数について説明します。

詳細説明
    高度な関数を使用すると、コマンドレットで実行できる操作に似た操作を実行するた
    めの関数を作成できます。高度な関数は、Microsoft .NET Framework 言語でコンパ
    イル済みのコマンドレットを作成することなく、関数を迅速に作成する場合に便利で
    す。これらの高度な関数は、コンパイル済みコマンドレットの機能を制限する場合や、
    コンパイル済みコマンドレットに似た機能の関数を作成する場合にも便利です。
 

    コンパイル済みコマンドレットの作成と高度な関数の作成には違いがあります。コン
    パイル済みコマンドレットは、C# などの .NET Framework 言語で作成する必要がある
     .NET Framework クラスです。一方、高度な関数は、Windows PowerShell スクリプ
    ト言語で、他の関数またはスクリプト ブロックの作成と同じ方法で作成されます。


    高度な関数では CmdletBinding 属性を使用して、自身をコマンドレットと同様に動
    作する関数として識別します。CmdletBinding 属性は、コンパイル済みコマンドレッ
    ト クラスで、クラスをコマンドレットと識別するのに使用される Cmdlet 属性に似
    ています。この属性の詳細については、「about_Functions_CmdletBindingAttribute
    」を参照してください。

    次の例は、入力された名前を受け取り、次にその名前を使用してあいさつを出力する
    関数を示しています。この関数では、コンパイル済みコマンドレットの動詞と名詞の
    ペアと似た、動詞 (Send) と名詞 (Greeting) のペアから成るを定義しています。た
    だし、関数では、"動詞-名詞" 形式の名前を付ける必要はありません。

        function Send-Greeting
        {
          [CmdletBinding()]
          Param(
              [Parameter(Mandatory=$true)]
              [string] $Name
          )
          Process
          {
            write-host ("Hello " + $Name + "!")
          }
        }

    関数のパラメーターは、パラメーター属性を使用して宣言されます。この属性は単独
    で使用することも、Alias 属性と共に使用することも、その他のいくつかのパラメー
    ター検証属性と共に使用することもできます。パラメーター (実行時に追加される動
    的パラメーターを含む) の宣言方法の詳細については、「about_Functions_Advanced
    _Parameters」を参照してください。about_Functions_Advanced_Parameters. 

    前の関数の実際の動作は、Process ブロックで実行されます。この動作は、コマンド
    レットに渡すデータを処理するためにコンパイル済みコマンドレットによって使用さ
    れる ProcessingRecord メソッドに相当します。このブロックについては、Begin ブ
    ロックと End ブロックと共に、「about_Functions_Advanced_Methods」トピックで
    説明します。

    高度な関数は、次の点でコンパイル済みコマンドレットと異なります。

        - 高度な関数のパラメーター バインドでは、文字列の配列をブール値のパラメ
          ーターにバインドしても例外がスローされません。

        - ValidateSet 属性および ValidatePattern 属性は、名前付きパラメーターを
          渡すことができません。

        - 高度な関数はトランザクションでは使用できません。
   
関連項目
    about_Functions_Advanced_CmdletBindingAttribute about_Functions_Ad
    vanced_Methods  
    about_Functions_Advanced_Parameters 
    Windows PowerShell Cmdlets (Windows Windows PowerShell コマンドレット) 
    (http://go.microsoft.com/fwlink/?LinkID=135279)
	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、HelpFile、about_functions_advanced
ご利用数: 1858257
感想・要望・問い合わせは こちら