about_Data_Sections
Krótki opis
Objaśnia sekcje DATA
, które izolują ciągi tekstowe i inne dane tylko do odczytu od logiki skryptu.
Długi opis
Skrypty przeznaczone dla programu PowerShell mogą zawierać co najmniej jedną sekcję DATA
zawierającą tylko dane. Możesz dołączyć co najmniej jedną sekcję DATA
do dowolnego skryptu, funkcji lub funkcji zaawansowanej. Zawartość sekcji DATA
jest ograniczona do określonego podzestawu języka skryptowego programu PowerShell.
Oddzielenie danych od logiki kodu ułatwia identyfikowanie zarówno logiki, jak i danych oraz zarządzanie nimi. Umożliwia ona posiadanie oddzielnych plików zasobów ciągów dla tekstu, takich jak komunikaty o błędach i ciągi Pomocy. Izoluje również logikę kodu, która ułatwia testy zabezpieczeń i weryfikacji.
W programie PowerShell możesz użyć sekcji DATA
do obsługi międzynarodowych skryptów. Możesz użyć DATA
sekcji, aby ułatwić izolowanie, lokalizowanie i przetwarzanie ciągów, które można przetłumaczyć na inne języki.
Sekcja DATA
została dodana w funkcji programu PowerShell 2.0.
Składnia
Składnia sekcji DATA
jest następująca:
DATA [<variable-name>] [-supportedCommand <cmdlet-name>] {
<Permitted content>
}
Słowo kluczowe DATA
jest wymagane. Nie uwzględnia wielkości liter. Dozwolona zawartość jest ograniczona do następujących elementów:
Wszystkie operatory programu PowerShell, z wyjątkiem
-match
If
,Else
, iElseIf
instrukcjeNastępujące zmienne automatyczne:
$PsCulture
, ,$PsUICulture
$True
,$False
i$Null
Komentarze
Pipelines
Instrukcje rozdzielone średnikami (
;
)Literały, takie jak:
a 1 1,2,3 "PowerShell 2.0" @( "red", "green", "blue" ) @{ a = 0x1; b = "great"; c ="script" } [XML] @' <p> Hello, World </p> '@
Polecenia cmdlet, które są dozwolone w sekcji
DATA
. Domyślnie dozwolone jest tylkoConvertFrom-StringData
polecenie cmdlet.Polecenia cmdlet, na które zezwalasz w sekcji
DATA
przy użyciu parametru-SupportedCommand
.
W przypadku używania polecenia cmdlet ConvertFrom-StringData
w sekcji DATA
można ująć pary klucz-wartość w ciągach o pojedynczym cudzysłowie lub podwójnym cudzysłowie albo w cudzysłów jednocytnych lub dwukrotnie cytowanych tutaj ciągów. Jednak ciągi, które zawierają zmienne i podwyrażenia, muszą być ujęte w ciągi w pojedynczych cudzysłowach lub w tak zwanych "here-strings" z pojedynczymi cudzysłowami, aby zapobiec rozwinięciu zmiennych i wykonaniu podwyrażeń.
-SupportedCommand
Parametr SupportedCommand umożliwia wskazanie, że polecenie cmdlet lub funkcja generuje tylko dane. Jest zaprojektowana tak, aby użytkownicy mogli dołączać cmdlety i funkcje do sekcji DATA
, którą sami napisali lub przetestowali.
Wartość SupportedCommand to lista nazw jednego lub więcej poleceń cmdlet albo funkcji, rozdzielona przecinkami.
Na przykład następująca sekcja DATA
zawiera napisane przez użytkownika polecenie cmdlet, Format-Xml
, które formatuje dane w pliku XML:
DATA -supportedCommand Format-Xml
{
Format-Xml -Strings string1, string2, string3
}
Korzystanie z sekcji DATA
Aby użyć zawartości sekcji DATA
, przypisz ją do zmiennej i użyj notacji zmiennych, aby uzyskać dostęp do zawartości.
Na przykład poniższa sekcja DATA
zawiera polecenie ConvertFrom-StringData
, które konwertuje tutaj-ciąg na tabelę skrótów. Tabela skrótów jest przypisywana do zmiennej $TextMsgs
.
Zmienna $TextMsgs
nie jest częścią sekcji DATA
.
$TextMsgs = DATA {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Aby uzyskać dostęp do kluczy i wartości w tabeli skrótów w programie $TextMsgs
, użyj następujących poleceń.
$TextMsgs.Text001
$TextMsgs.Text002
Alternatywnie możesz umieścić nazwę zmiennej w definicji sekcji DATA
. Na przykład:
DATA TextMsgs {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
$TextMsgs
Wynik jest taki sam jak w poprzednim przykładzie.
Name Value
---- -----
Text001 Windows 7
Text002 Windows Server 2008 R2
Przykłady
Proste ciągi danych.
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."
}
Ciągi zawierające dozwolone zmienne.
DATA {
if ($null) {
"To get help for this cmdlet, type get-help new-dictionary."
}
}
Jeden cytowany tutaj ciąg, który używa ConvertFrom-StringData
polecenia cmdlet :
DATA {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Dwukrotnie cytowany tutaj ciąg, który używa ConvertFrom-StringData
polecenia cmdlet :
DATA {
ConvertFrom-StringData -StringData @"
Msg1 = To start, press any key.
Msg2 = To exit, type "quit".
"@
}
Sekcja danych zawierająca napisane przez użytkownika polecenie cmdlet, które generuje dane:
DATA -supportedCommand Format-XML {
Format-Xml -Strings string1, string2, string3
}