about_Data_Sections
Krátký popis
Vysvětluje oddíly DATA
, které izolují textové řetězce a další data určená jen pro čtení od logiky skriptu.
Dlouhý popis
Skripty navržené pro PowerShell můžou mít jeden nebo více DATA
oddílů, které obsahují jenom data. Do libovolného skriptu, funkce nebo pokročilé funkce můžete zahrnout jednu nebo více DATA
sekcí. 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 můžete k podpoře internacionalizace skriptů použít oddíl DATA
. Pomocí DATA
oddílů můžete usnadnit izolaci, vyhledání a zpracování řetězců, které lze přeložit do jiných jazyků.
Oddíl DATA
byl přidán do funkce PowerShellu 2.0.
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
,Else
aElseIf
příkazyNá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> '@
Cmdlety povolené v části
DATA
. Ve výchozím nastavení je povolená pouzeConvertFrom-StringData
rutina.Rutiny, které povolíte v oddílu
DATA
pomocí parametru-SupportedCommand
Když použijete rutinu ConvertFrom-StringData
v části DATA
, můžete páry klíč-hodnota uzavřít do řetězců s jednoduchými nebo dvojitými uvozovkami nebo v jednoduchých nebo dvojitých here-stringech. Řetězce, které obsahují proměnné a dílčí výrazy, však musí být uzavřeny do řetězců s jednoduchými uvozovkami nebo v jednoduchých rozepsaných řetězcích, aby proměnné nebyly expandovány a dílčí výrazy nebyly proveditelné.
-SupportedCommand
Parametr SupportedCommand umožňuje indikovat, že rutina nebo funkce generuje pouze data. Je navržená tak, aby uživatelům umožňovala zahrnout rutiny a funkce do DATA
čá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 DATA
obsahuje uživatelsky napsanou rutinu Format-Xml
, která formátuje data v souboru XML:
DATA -supportedCommand Format-Xml
{
Format-Xml -Strings string1, string2, string3
}
Použití oddílu DATA
Pokud chcete použít obsah oddílu DATA
, přiřaďte ho proměnné a pro přístup k obsahu použijte notaci proměnných.
Například následující oddíl DATA
obsahuje příkaz ConvertFrom-StringData
, který převede tento řetězec na tabulku hash. K proměnné je přiřazena $TextMsgs
tabulka hash.
Proměnná $TextMsgs
není součástí oddílu DATA
.
$TextMsgs = DATA {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Pro přístup ke klíčům a hodnotám v tabulce $TextMsgs
hash 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
}