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 |