PowerShell HelpFile - about_script_blocks
 記事記号:[me1579] 初版:2011/May/10

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

トピック
    about_Script_Blocks

簡易説明
    スクリプト ブロックとは何かを定義し、Windows PowerShell プログラミング言語で
    スクリプト ブロックを使用する方法について説明します。


詳細説明
    Windows PowerShell プログラミング言語におけるスクリプト ブロックとは、1 つの
    単位として使用できるステートメントまたは式の集合です。スクリプト ブロックは、
    引数を受け取り、値を返すことができます。

    構文的には、スクリプト ブロックは、中かっこで囲まれたステートメント リストで
    す。次の構文に例を示します。


        {<statement list>}


    スクリプト ブロックは、スクリプト ブロック内のすべてのコマンドの出力を、単一
    のオブジェクトまたは配列として返します。

    関数と同様、スクリプト ブロックにもパラメーターを指定できます。名前付きパラ
    メーターを割り当てるには、次の構文に示すように、Param キーワードを使用します。


        {
            param ([type]$parameter1 [,[type]$parameter2])
            <statement list>
        }


    スクリプト ブロックでは、関数と異なり、中かっこの外側にパラメーターを指定す
    ることはできません。


    関数と同様、スクリプト ブロック内に DynamicParam、Begin、Process、および End 
    の各キーワードを指定できます。詳細については、「about_Functions」および「abo
    ut_Functions_Advanced」を参照してください。


  スクリプト ブロックの使用

      スクリプト ブロックは、Microsoft .NET Framework の型 
      (System.Management.Automation.ScriptBlock) のインスタンスです。コマンドは、
      スクリプト ブロックのパラメーター値を含むことができます。たとえば、Invoke-
      Command コマンドレットには、次の例に示すように、スクリプト ブロック値を受
      け取る ScriptBlock パラメーターが用意されています。


          C:\PS> invoke-command -scriptblock  { get-process }
          Handles  NPM(K)    PM(K)     WS(K) VM(M)   CPU(s)     Id ProcessName
          -------  ------    -----     ----- -----   ------     -- -----------            
              999      28    39100     45020   262    15.88   1844 communicator
              721      28    32696     36536   222    20.84   4028 explorer   
          . . .           

      値として使用されるスクリプト ブロックは、次の例に示すように、さらに複雑に
      なります。


          C:\PS> invoke-command -scriptblock { param ($uu = "Parameter");
              "$uu assigned."} 
          Parameter assigned.


      前の例のスクリプト ブロックでは、Param キーワードを使用して、既定値を持つ
      パラメーターを作成しています。次の例では、Invoke-Command コマンドレットの 
      Args パラメーターを使用して、パラメーターに異なる値を割り当てています。


          C:\PS> invoke-command -scriptblock {param ($uu = "Parameter"); 
              "$uu assigned."} -args "Other value"
          Other value assigned.


      スクリプト ブロックを変数に代入することができます。次に例を示します。


          C:\PS> $a = {param ($uu = "Parameter"); "$uu assigned."}


      変数は、コマンドレット (たとえば Invoke-Command) と共に使用できます。次に
      例を示します。


          C:\PS> invoke-command -scriptblock $a -args "Other value"
          Other value assigned.


      呼び出し演算子 (&) を使用すると、変数に代入されているスクリプト ブロックを
      実行できます。次に例を示します。


          C:\PS> &$a
          Parameter assigned.


      スクリプト ブロックにパラメーターを指定することもできます。次に例を示します。


          C:\PS> &$a "Other value"
          Other value assigned.


      スクリプト ブロックによって作成された値を変数に代入する場合は、次の例に示
      すように、呼び出し演算子を使用してスクリプト ブロックを直接実行します。


          C:\PS> $a = &{param ($uu = "Parameter"); "$uu assigned."}
          C:\PS> $a
          Parameter assigned.


      呼び出し演算子の詳細については、「about_Operators」を参照してください。


関連項目
    about_Functions
    about_Functions_Advanced
    about_Operators
	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、HelpFile、about_script_blocks
ご利用数: 1971789
感想・要望・問い合わせは こちら