ja-JP/about_Data_Sections.help.txt

TOPIC
    about_Data_Sections

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

詳細な説明
    PowerShell 向けに設計されたスクリプトには、データのみを含む 1 つ以上の
    data セクションを持たせることができます。任意のスクリプト、関数、
    または高度な関数に、1 つ以上の data セクションを含めることができます。
    data セクションの内容は、PowerShell スクリプト言語の指定された
    サブセットに制限されます。

    データをコードのロジックから分離することで、ロジックとデータの両方を
    識別および管理しやすくなります。エラーメッセージやヘルプ文字列などの
    テキスト用に、文字列リソースファイルを別個に持つことができます。また
    コードのロジックを分離するため、セキュリティと検証のテストが
    しやすくなります。

    PowerShell では、data セクションを使ってスクリプトの国際化を
    サポートできます。data セクションを使うと、他の言語に翻訳できる文字列
    を分離、検索、処理しやすくなります。

    data セクションは PowerShell 2.0 の機能として追加されました。

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

        data [<variable-name>] [-SupportedCommand <cmdlet-name>] {
            <Permitted content>
        }

    data キーワードは必須です。大文字と小文字は区別されません。許可される
    内容は次の要素に限定されます。

    - -match を除くすべての PowerShell 演算子
    - if、else、elseif の各文
    - 次の自動変数: $PSCulture、$PSUICulture、$true、$false、$null
    - コメント
    - パイプライン
    - セミコロン (;) で区切られた文
    - 次のようなリテラル:

        a
        1
        1,2,3
        "PowerShell 2.0"
        @( "red", "green", "blue" )
        @{ a = 0x1; b = "great"; c ="script" }
        @'
        <p> Hello, World </p>
        '@

    - 既定で data セクション内に許可されるコマンドレット。既定では
      ConvertFrom-StringData コマンドレットのみが許可されます。
    - -SupportedCommand パラメーターを使って data セクション内で許可した
      コマンドレット。

    data セクションで ConvertFrom-StringData コマンドレットを使う場合、
    キーと値のペアを単一引用符または二重引用符で囲んだ文字列、あるいは
    単一引用符または二重引用符で囲んだ here-string で囲むことができます。
    ただし、変数や部分式を含む文字列は、変数が展開されず部分式が実行され
    ないようにするため、単一引用符で囲んだ文字列または単一引用符で囲んだ
    here-string で囲む必要があります。

-SupportedCommand
    SupportedCommand パラメーターを使うと、コマンドレットまたは関数が
    データのみを生成することを示せます。これは、ユーザーが自分で記述または
    テストしたコマンドレットや関数を data セクションに含められるように
    設計されています。

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

    たとえば、次の data セクションには、XML ファイル内のデータを整形する
    ユーザー作成のコマンドレット Format-Xml が含まれています。

        data -SupportedCommand Format-Xml
        {
            Format-Xml -Strings string1, string2, string3
        }

data セクションの使用
    data セクションの内容を使用するには、それを変数に代入し、変数表記を
    使って内容にアクセスします。

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

    $TextMsgs 変数は data セクションの一部ではありません。

        $TextMsgs = data {
            ConvertFrom-StringData -StringData @'
        Text001 = Windows 7
        Text002 = Windows Server 2008 R2
        '@
        }

    $TextMsgs 内のハッシュテーブルのキーと値にアクセスするには、次の
    コマンドを使います。

        $TextMsgs.Text001
        $TextMsgs.Text002

    あるいは、data セクションの定義内に変数名を記述することもできます。
    たとえば次のようにします。

        data TextMsgs {
            ConvertFrom-StringData -StringData @'
        Text001 = Windows 7
        Text002 = Windows Server 2008 R2
        '@
        }

        $TextMsgs

    結果は前の例と同じです。

        Name Value
        ---- -----
        Text001 Windows 7
        Text002 Windows Server 2008 R2


    単純なデータ文字列。

        data {
            "Thank you for using my 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 @'
        Text001 = Windows 7
        Text002 = Windows Server 2008 R2
        '@
        }

    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

----
原文: PowerShell-Docs (CC BY 4.0) の翻訳 / PSHelpJaJP