about_Data_Sections

Krátký popis

Vysvětluje části Data, které izolují textové řetězce a další data jen pro čtení z logiky skriptu.

Dlouhý popis

Skripty navržené pro PowerShell můžou mít jeden nebo více částí Dat, které obsahují pouze data. Do libovolného skriptu, funkce nebo pokročilé funkce můžete zahrnout jeden nebo více datových oddílů. Obsah oddílu Data je omezen na zadanou podmnožinu skriptovacího jazyka PowerShellu.

Oddělení dat od logiky kódu usnadňuje identifikaci a správu logiky i dat. Umožňuje mít samostatné soubory prostředků řetězců pro text, jako jsou chybové zprávy a řetězce nápovědy. Izoluje také logiku kódu, která usnadňuje testy zabezpečení a ověřování.

V PowerShellu se část Data používá k podpoře internacionalizace skriptů. Pomocí datových oddílů můžete usnadnit izolaci, vyhledání a zpracování řetězců, které budou přeloženy do mnoha jazyků uživatelského rozhraní.

Část Data je funkce PowerShellu 2.0. Skripty s oddíly Data se nespustí v PowerShellu 1.0 bez revize.

Syntaxe

Syntaxe oddílu Data je následující:

DATA [<variable-name>] [-supportedCommand <cmdlet-name>] {
    <Permitted content>
}

Je vyžadováno klíčové slovo Data. Nerozlišuje malá a velká písmena. Povolený obsah je omezen na následující prvky:

  • Všechny operátory PowerShellu s výjimkou -match

  • If, Elsea ElseIf příkazy

  • Následující automatické proměnné: $PsCulture, $PsUICulture, $True$False, a$Null

  • Komentáře

  • Pipelines

  • Příkazy oddělené středníky (;)

  • Literály, například následující:

    a
    1
    1,2,3
    "PowerShell 2.0"
    @( "red", "green", "blue" )
    @{ a = 0x1; b = "great"; c ="script" }
    [XML] @'
    <p> Hello, World </p>
    '@
    
  • Rutiny povolené v části Data Ve výchozím nastavení je povolená pouze ConvertFrom-StringData rutina.

  • Rutiny, které povolíte v části Data pomocí parametru -SupportedCommand .

Když použijete rutinu ConvertFrom-StringData v části Data, můžete páry klíč-hodnota uzavřít do jednoduchých nebo dvojitých uvozových řetězců nebo v jednoduchých nebo dvojitých uvozovaných řetězcích. Řetězce, které obsahují proměnné a podvýrazy, však musí být uzavřeny v jednoduchých uvozových řetězcích nebo v jednoduchých uvozových řetězcích, aby proměnné nebyly rozbalené a dílčí výrazy nejsou spustitelné.

-SupportedCommand

Parametr -SupportedCommand umožňuje označit, že rutina nebo funkce generují pouze data. Je navržená tak, aby uživatelům umožňovala zahrnout rutiny a funkce do datové části, kterou napsali nebo otestovali.

Hodnota -SupportedCommand je čárkami oddělený seznam jednoho nebo více názvů rutin nebo funkcí.

Například následující část dat obsahuje rutinu napsanou uživatelem, Format-Xmlkterá formátuje data v souboru XML:

DATA -supportedCommand Format-Xml
{
    Format-Xml -Strings string1, string2, string3
}

Použití datového oddílu

Pokud chcete použít obsah oddílu Data, přiřaďte ho proměnné a použijte notaci proměnných pro přístup k obsahu.

Například následující část dat obsahuje ConvertFrom-StringData příkaz, který převede zde-řetězec na tabulku hash. K proměnné je přiřazena $TextMsgs tabulka hash.

Proměnná $TextMsgs není součástí datového oddílu.

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

Pro přístup ke klíčům a hodnotám v tabulce $TextMsgshash použijte následující příkazy.

$TextMsgs.Text001
$TextMsgs.Text002

Případně můžete název proměnné vložit do definice oddílu Data. Příklad:

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

$TextMsgs

Výsledek je stejný jako v předchozím příkladu.

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

Příklady

Jednoduché datové řetězce.

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."
}

Řetězce, které obsahují povolené proměnné.

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

Řetězec s jednou uvozovanou znaky, který používá rutinu ConvertFrom-StringData :

DATA {
    ConvertFrom-StringData -stringdata @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}

Dvojitý uvozovaný řetězec, který používá rutinu ConvertFrom-StringData :

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

Oddíl dat, který obsahuje rutinu napsanou uživatelem, která generuje data:

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

Viz také