about_Data_Sections
Kurze Beschreibung
Erläutert DATA
Abschnitte, die Textzeichenfolgen und andere schreibgeschützte Daten aus Skriptlogik isolieren.
Lange Beschreibung
Skripts, die für PowerShell entwickelt wurden, können einen oder mehrere DATA
Abschnitte enthalten, die nur Daten enthalten. Sie können einen oder mehrere DATA
-Abschnitte in beliebige Skripte, Funktionen oder erweiterte Funktionen einschließen. Der Inhalt des abschnitts DATA
ist auf eine bestimmte Teilmenge der PowerShell-Skriptsprache beschränkt.
Das Trennen von Daten aus der Codelogik erleichtert das Identifizieren und Verwalten von Logik und Daten. Sie können separate Zeichenfolgenressourcendateien für Text verwenden, z. B. Fehlermeldungen und Hilfezeichenfolgen. Sie isoliert auch die Codelogik, die Sicherheits- und Validierungstests erleichtert.
In PowerShell können Sie den Abschnitt DATA
verwenden, um die Skript-Internationalisierung zu unterstützen. Sie können DATA
Abschnitte verwenden, um das Isolieren, Lokalisieren und die Verarbeitung von Zeichenfolgen zu vereinfachen, die in andere Sprachen übersetzt werden können.
Der Abschnitt DATA
wurde im PowerShell 2.0-Feature hinzugefügt.
Syntax
Die Syntax für einen DATA
-Abschnitt lautet wie folgt:
DATA [<variable-name>] [-supportedCommand <cmdlet-name>] {
<Permitted content>
}
Das Schlüsselwort DATA
ist erforderlich. Die Groß-/Kleinschreibung wird nicht beachtet. Der zulässige Inhalt ist auf die folgenden Elemente beschränkt:
Alle PowerShell-Operatoren außer
-match
If
-,Else
- undElseIf
-AnweisungenDie folgenden automatischen Variablen:
$PsCulture
, ,$PsUICulture
$True
, ,$False
und$Null
Kommentare
Pipelines
Durch Semikolons getrennte Anweisungen (
;
)Literale, z. B. folgendes:
a 1 1,2,3 "PowerShell 2.0" @( "red", "green", "blue" ) @{ a = 0x1; b = "great"; c ="script" } [XML] @' <p> Hello, World </p> '@
Cmdlets, die in einem
DATA
-Abschnitt erlaubt sind. Standardmäßig ist nur dasConvertFrom-StringData
Cmdlet zulässig.Cmdlets, die Sie in Abschnitt
DATA
mithilfe des-SupportedCommand
-Parameters zulassen.
Wenn Sie das ConvertFrom-StringData
Cmdlet in einem DATA
-Abschnitt verwenden, können Sie die Schlüssel-Wert-Paare in Zeichenfolgen mit einfachen oder doppelten Anführungszeichen oder in einfach- oder doppelt-geschriebenen Here-Strings einschließen. Zeichenfolgen, die Variablen und Unterausdrücke enthalten, müssen jedoch in einfachen Anführungszeichen oder in einfachen Here-Strings eingeschlossen werden, sodass die Variablen nicht erweitert werden und die Unterausdrücke nicht ausführbar sind.
-SupportedCommand
Mit dem parameter SupportedCommand können Sie angeben, dass ein Cmdlet oder eine Funktion nur Daten generiert. Es ist so konzipiert, dass Benutzer Cmdlets und Funktionen in einen DATA
Abschnitt aufnehmen können, den sie geschrieben oder getestet haben.
Der Wert SupportedCommand ist eine kommagetrennte Liste mit einem oder mehreren Cmdlet- oder Funktionsnamen.
Der folgende DATA
Abschnitt enthält beispielsweise ein vom Benutzer geschriebenes Cmdlet, Format-Xml
, das Daten in einer XML-Datei formatiert:
DATA -supportedCommand Format-Xml
{
Format-Xml -Strings string1, string2, string3
}
Verwendung eines DATA
-Abschnitts
Um den Inhalt eines DATA
Abschnitts zu verwenden, weisen Sie ihn einer Variablen zu, und verwenden Sie die Variablenotation, um auf den Inhalt zuzugreifen.
Der folgende DATA
Abschnitt enthält z. B. einen ConvertFrom-StringData
-Befehl, der die here-Zeichenfolge in eine Hashtabelle umwandelt. Die Hashtabelle wird der $TextMsgs
Variablen zugewiesen.
Die $TextMsgs
Variable ist nicht Teil des abschnitts DATA
.
$TextMsgs = DATA {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Verwenden Sie die folgenden Befehle, um auf die Schlüssel und Werte in der Hashtabelle $TextMsgs
zuzugreifen.
$TextMsgs.Text001
$TextMsgs.Text002
Alternativ können Sie den Variablennamen in die Definition des Abschnitts DATA
einfügen. Zum Beispiel:
DATA TextMsgs {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
$TextMsgs
Das Ergebnis entspricht dem vorherigen Beispiel.
Name Value
---- -----
Text001 Windows 7
Text002 Windows Server 2008 R2
Beispiele
Einfache Datenzeichenfolgen.
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."
}
Zeichenfolgen, die zulässige Variablen enthalten.
DATA {
if ($null) {
"To get help for this cmdlet, type get-help new-dictionary."
}
}
Eine hier zitierte einzel zitierte Zeichenfolge, die das ConvertFrom-StringData
Cmdlet verwendet:
DATA {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Eine hier zitierte doppelte Zeichenfolge, die das ConvertFrom-StringData
Cmdlet verwendet:
DATA {
ConvertFrom-StringData -StringData @"
Msg1 = To start, press any key.
Msg2 = To exit, type "quit".
"@
}
Ein Datenabschnitt, der ein vom Benutzer geschriebenes Cmdlet enthält, das Daten generiert:
DATA -supportedCommand Format-XML {
Format-Xml -Strings string1, string2, string3
}