トピック
    about_Data_Sections

簡易説明
    テキスト文字列と読み取り専用データをスクリプト ロジックから分離する Data セクションについて
    説明します。


詳細説明
    Windows PowerShell 用に設計されたスクリプトには、データのみが含まれた 1 つまたは複数の 
    Data セクションを指定することができます。1 つのスクリプト、関数、または高度な関数に、1 つま
    たは複数の Data セクションを含めることができます。Data セクションのコンテンツは、Windows 
    PowerShell スクリプト言語の指定されたサブセットに制限されます。

    データをコード ロジックから分離すると、ロジックとデータ両方の識別および管理がより容易になり
    ます。これによって、エラー メッセージおよびヘルプ文字列などのテキスト用に、個別の文字列リソ
    ース ファイルを用意することが可能になります。また、コード ロジックが分離されることで、セキュ
    リティ テストおよび有効性テストも容易になります。

    Windows PowerShell では、Data セクションはスクリプトの国際化対応のサポートに使用されます。
    Data セクションを使用して、多くのユーザー インターフェイス (UI) 言語に翻訳される文字列の分
    離、検索、および処理をより容易にすることができます。

    Data セクションは、Windows PowerShell 2.0 の機能です。Data セクションがあるスクリプトは、
    Windows PowerShell 1.0 (リビジョンなし) では実行できません。


  構文

    Data セクションの構文は次のとおりです。

        DATA [-supportedCommand <cmdlet-name>] {

            <Permitted content>
        }


    Data キーワードは必須です。大文字と小文字は区別されません。


    許可されるコンテンツは次の要素に制限されます。

        - -match 以外のすべての Windows PowerShell 演算子	 
        
        - If、Else、および ElseIf ステートメント
           
	- 自動変数 $PsCulture、$PsUICulture、$True、$False、および $Null

        - コメント

        - パイプライン

        - セミコロン (;) によって区切られたステートメント

        - 次のようなリテラル

            a

            1
  
            1,2,3
	
            "Windows PowerShell 2.0"

            @( "red", "green", "blue" )

            @{ a = 0x1; b = "great"; c ="script" }

            [XML] @'
             <p> Hello, World </p>
            '@

        - Data セクションで許可されるコマンドレット。既定では、ConvertFrom-StringData コ
          マンドレットのみ許可されています。

        - SupportedCommand パラメーターを使用することによって、Data セクションで許可されるコマ
          ンドレット。


    Data セクションで ConvertFrom-StringData コマンドレットを使用すると、キー/値のペアを、
    単一引用符または二重引用符で囲まれた文字列か、単一引用符または二重引用符で囲まれた here-string 
    で囲むことができます。ただし、変数およびサブ式を格納している文字列は、変数が展開されたり、サブ
    式が実行可能になったりしないように、単一引用符で囲まれた文字列または単一引用符で囲まれた 
    here-string で囲む必要があります。


  SupportedCommand

      SupportedCommand パラメーターを使用すると、コマンドレットまたは関数からデータのみが生
      成されるように指定できます。つまりユーザーは、記述またはテストしたコマンドレットおよび関数
      を Data  セクションに含めることができます。

      SupportedCommand の値は、1 つまたは複数のコマンドレット名または関数名のコンマ区切りリス
      トです。

      たとえば、次に示す Data セクションには、ユーザー記述の Format-XML というコマンドレット
      が含まれています。このコマンドレットは、データを XML ファイルとして書式化するものです。

	  DATA -supportedCommand Format-XML 
          {    
             Format-XML -strings string1, string2, string3
          }
       

  Data セクションの使用

      Data セクションのコンテンツを使用するには、その Data セクションを変数に割り当て、変数表記
      を使用してコンテンツにアクセスします。

      たとえば、次の data セクションには、here-string をハッシュ テーブルに変換する ConvertFrom-
      StringData コマンドが含まれます。ハッシュ テーブルは $TextMsgs 変数に代入されます。

      $TextMsgs 変数は、データ セクションの一部ではありません。
 
          $TextMsgs = DATA {
              ConvertFrom-StringData -stringdata @'
                Text001 = Windows 7
                Text002 = Windows Server 2008 R2
          '@
          }
     
      $TextMsgs 内のハッシュ テーブルにあるキーおよび値にアクセスするには、以下のコマンドを使
      用します。

          $TextMsgs.Text001
          $TextMsgs.Text002



例

    単純なデータ文字列。

        DATA {
            "Thank you for using my Windows PowerShell Organize.pst script."
            "It is provided free of charge to the community."
            "I appreciate your comments and feedback."
        }


    許可された変数を含む文字列。

        DATA {
            if ($null) {
	       "To get help for this cmdlet, type get-help new-dictionary."
            }
        }		
		

    ConvertFrom-StringData コマンドレットを使用し、単一引用符で囲まれた here-string。

        DATA  {
          ConvertFrom-StringData -stringdata @"
            Msg1 = To start, press any key.
            Msg2 = To exit, type "quit".
        "@
        }



    ConvertFrom-StringData コマンドレットを使用し、二重引用符で囲まれた here-string。

        DATA {
          ConvertFrom-StringData -stringdata @" Msg1 = To start, 
          press any key.
            Msg2 = To exit, type "quit".
        "@
        }



    データを生成するユーザー記述のコマンドレットを含む Data セクション。

	DATA -supportedCommand Format-XML {    
           Format-XML -strings string1, string2, string3
        }


関連項目
    about_Automatic_Variables
    about_Comparison_Operators
    about_Hash_Tables
    about_If
    about_Operators
    about_Quoting_Rules
    about_Script_Internationalization
    ConvertFrom-StringData
    Import-LocalizedData




目次