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
,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> '@
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-Xml
která 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 $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
}