Dieser Inhalt wird nicht mehr regelmäßig aktualisiert. Informationen zur Unterstützung für dieses Produkt, diesen Dienst, diese Technologie oder diese API finden Sie in der Microsoft Lifecycle-Richtlinie.
THEMA
about_Quoting_Rules
KURZBESCHREIBUNG
Beschreibt Regeln zur Verwendung einzelner und doppelter
Anführungszeichen in Windows PowerShell.
DETAILBESCHREIBUNG
Anführungszeichen werden verwendet, um eine Literalzeichenfolge
anzugeben. Zeichenfolgen können in einfache gerade (') oder
doppelte gerade Anführungszeichen (") eingeschlossen werden.
Anführungszeichen werden außerdem verwendet, um eine
here-Zeichenfolge zu erstellen. Eine here-Zeichenfolge ist eine
Zeichenfolge in einfachen oder doppelten Anführungszeichen, in
der Anführungszeichen buchstäblich interpretiert werden. Eine
here-Zeichenfolge kann mehrere Zeilen umfassen. Alle Zeilen in
einer here-Zeichenfolge werden als Zeichenfolgen interpretiert,
auch wenn sie nicht in Anführungszeichen eingeschlossen sind.
In Befehlen an Remotecomputer definieren Anführungszeichen die
Teile des Befehls, die auf dem Remotecomputer ausgeführt werden.
In einer Remotesitzung legen Anführungszeichen weiterhin fest, ob
die Variablen in einem Befehl zuerst auf dem lokalen Computer
oder auf dem Remotecomputer interpretiert werden.
Zeichenfolgen in einzelnen und doppelten Anführungszeichen
Bei Zeichenfolgen zwischen doppelten Anführungszeichen werden
Variablennamen nach einem Dollarzeichen ($) durch den Wert der
Variablen ersetzt, bevor die Zeichenfolge zur Verarbeitung an
den Befehl übergeben wird.
Beispiel:
$i = 5
"Der Wert von $i ist $i."
Dieser Befehl erzeugt folgende Ausgabe:
Der Wert von 5 ist 5
In Zeichenfolgen in doppelten Anführungszeichen werden auch
Ausdrücke ausgewertet, und das Ergebnis wird in die
Zeichenfolge eingefügt. Beispiel:
"Der Wert von $(2+3) ist 5."
Dieser Befehl erzeugt folgende Ausgabe:
Der Wert von 5 ist 5
Zeichenfolgen zwischen einfachen Anführungszeichen werden so an
den Befehl übergeben, wie Sie eingegeben wurden. Es findet
keine Ersetzung statt. Beispiel:
$i = 5
'Der Wert von $i ist $i.'
Dieser Befehl erzeugt folgende Ausgabe:
Der Wert von $i ist $i.
Entsprechend werden Ausdrücke in Zeichenfolgen zwischen einfachen
Anführungszeichen nicht ausgewertet. Sie werden als Literale
interpretiert. Beispiel:
'Der Wert von $(2+3) ist 5.'
Dieser Befehl erzeugt folgende Ausgabe:
Der Wert von $(2+3) ist 5.
Mit dem Graviszeichen (') (ASCII 96), dem Escapezeichen von
Windows PowerShell, können Sie die Ersetzung eines
Variablenwerts in einer Zeichenfolge zwischen doppelten
Anführungszeichen verhindern.
Im folgenden Beispiel wird durch das Graviszeichen vor der
ersten $i-Variablen verhindert, dass der Name der Variablen von
Windows PowerShell durch ihren Wert ersetzt wird. Beispiel:
$i = 5
"Der Wert von `$i ist $i."
Dieser Befehl erzeugt folgende Ausgabe:
Der Wert von $i ist 5.
Doppelte Anführungszeichen können in einer Zeichenfolge
angezeigt werden, indem die gesamte Zeichenfolge in einfache
Anführungszeichen eingeschlossen wird. Beispiel:
'Wie sagt man so schön: "Man lernt nie aus."'
Dieser Befehl erzeugt folgende Ausgabe:
Wie sagt man so schön: "Man lernt nie aus."
Sie können auch eine Zeichenfolge in einfachen Anführungszeichen
in eine Zeichenfolge in doppelten Anführungszeichen
einschließen. Beispiel:
"Wie sagt man so schön: 'Man lernt nie aus.'"
Dieser Befehl erzeugt folgende Ausgabe:
Wie sagt man so schön: 'Man lernt nie aus.'
Sie können auch einen Satz in doppelten Anführungszeichen in
doppelte Anführungszeichen einschließen. Beispiel:
"Wie sagt man so schön: ""Man lernt nie aus."""
Dieser Befehl erzeugt folgende Ausgabe:
Wie sagt man so schön: "Man lernt nie aus."
Um ein einfaches Anführungszeichen in eine Zeichenfolge in einfachen
Anführungszeichen einzuschließen, verwenden Sie ein zweites, darauf
folgendes einfaches Anführungszeichen. Beispiel:
'Boole''sch'
Dieser Befehl erzeugt folgende Ausgabe:
Boole'sch
Um Windows PowerShell zu zwingen, ein doppeltes Anführungszeichen
buchstäblich zu interpretieren, verwenden Sie ein
Graviszeichen. Dadurch wird verhindert, dass Windows PowerShell
das Anführungszeichen als Zeichenfolgentrennzeichen
interpretiert. Beispiel:
"Beginnen Sie eine Zeichenfolge mit einem Anführungszeichen (`")."
Da der Inhalt von Zeichenfolgen in einfachen Anführungszeichen
buchstäblich interpretiert wird, können Sie in einer
Zeichenfolge in einfachen Anführungszeichen kein Graviszeichen
verwenden, um die buchstäbliche Interpretation von Zeichen zu
erzwingen.
Mit dem folgenden Befehl wird beispielsweise ein Fehler
generiert, da Windows PowerShell das Escapezeichen nicht
erkennt. Stattdessen wird das zweite Anführungszeichen als Ende
der Zeichenfolge interpretiert.
PS C:\> 'Beginnen Sie eine Zeichenfolge mit einem Anführungszeichen (`').'
Unerwartetes Token ')' in Ausdruck oder Anweisung.
Bei Zeile:1 Zeichen:27
+ 'Beginnen Sie eine Zeichenfolge <<<< mit einem Anführungszeichen (`').'
Here-Zeichenfolgen in einzelnen und doppelten Anführungszeichen
Die Verwendung von Anführungszeichen für here-Zeichenfolgen ist
etwas anders geregelt.
Eine here-Zeichenfolge ist eine Zeichenfolge in einfachen oder
doppelten Anführungszeichen, in der Anführungszeichen buchstäblich
interpretiert werden. Eine here-Zeichenfolge kann mehrere Zeilen
umfassen. Alle Zeilen in einer here-Zeichenfolge werden als
Zeichenfolgen interpretiert, auch wenn sie nicht in Anführungszeichen
eingeschlossen sind.
Analog zu regulären Zeichenfolgen werden Variablen bei
here-Zeichenfolgen in doppelten Anführungszeichen durch die
entsprechenden Werte ersetzt. Bei here-Zeichenfolgen in
einfachen Anführungszeichen werden Variablen nicht durch die
entsprechenden Werte ersetzt.
Auch wenn here-Zeichenfolgen für beliebigen Text verwendet
werden können, sind sie für die folgenden Arten von Text
besonders nützlich:
- Text mit literalen Anführungszeichen;
- mehrzeiliger Text, beispielsweise Text in einem HTML- oder XML-Dokument;
- Hilfetext für ein Skript oder eine Funktion
Here-Zeichenfolgen können eines der nachstehenden Formate
aufweisen. <Eingabetaste> steht dabei für das ausgeblendete
Zeilenvorschubzeichen oder das ausgeblendete Neue-Zeile-Zeichen,
das hinzugefügt wird, wenn Sie die EINGABETASTE drücken.
Format 1:
@"<Eingabetaste>
<Zeichenfolge> [Zeichenfolge] ...<Eingabetaste>
"@
Format 2:
@'<Eingabetaste>
<Zeichenfolge> [Zeichenfolge] ...<Eingabetaste>
'@
Unabhängig vom verwendeten Format muss das schließende
Anführungszeichen das erste Zeichen in der Zeile darstellen.
Eine here-Zeichenfolge enthält den gesamten Text zwischen den
beiden ausgeblendeten Zeichen.
In der here-Zeichenfolge werden alle Anführungszeichen
buchstäblich interpretiert.
Beispiel:
@"
Geben Sie "get-help" ein, um Hilfe zu erhalten.
"@
Dieser Befehl erzeugt folgende Ausgabe:
Geben Sie "get-help" ein, um Hilfe zu erhalten.
Here-Zeichenfolgen können die Verwendung von Zeichenfolgen in
Befehlen vereinfachen. Beispiel:
@"
Beginnen Sie eine Zeichenfolge mit einem Anführungszeichen (').
"@
Dieser Befehl erzeugt folgende Ausgabe:
Beginnen Sie eine Zeichenfolge mit einem Anführungszeichen (').
Bei here-Zeichenfolgen in einfachen Anführungszeichen werden
Variablen buchstäblich interpretiert und exakt reproduziert.
Beispiel:
@'
Die Variable "$profile" enthält den Pfad
des Windows PowerShell-Profils.
'@
Dieser Befehl erzeugt folgende Ausgabe:
Die Variable "$profile" enthält den Pfad
des Windows PowerShell-Profils.
Bei here-Zeichenfolgen in doppelten Anführungszeichen werden
Variablen durch die entsprechenden Werte ersetzt. Beispiel:
@"
Auch wenn Sie kein Profil erstellt haben, lautet der Pfad
der Profildatei wie folgt:
$profile.
"@
Dieser Befehl erzeugt folgende Ausgabe:
Auch wenn Sie kein Profil erstellt haben,
lautet der Pfad der Profildatei wie folgt:
C:\Users\User01\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1.
Here-Zeichenfolgen werden in aller Regel verwendet, um mehrere
Zeilen einer Variablen zuzuweisen. Beispielsweise weist die
folgende here-Zeichenfolge der Variablen "$page" eine Seite mit
XML zu.
$page = [XML] @"
<command:command xmlns:maml="https://schemas.microsoft.com/maml/2004/10"
xmlns:command="https://schemas.microsoft.com/maml/dev/command/2004/10"
xmlns:dev="https://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
<command:name>
Format-Table
</command:name>
<maml:description>
<maml:para>Formatiert die Ausgabe als Tabelle.</maml:para>
</maml:description>
<command:verb>format</command:verb>
<command:noun>table</command:noun>
<dev:version></dev:version>
</command:details>
...
</command:command>
"@
Here-Zeichenfolgen sind auch ein gut geeignetes Format für
Eingaben für das Cmdlet "ConvertFrom-StringData", mit dem
here-Zeichenfolgen in Hashtabellen umgewandelt werden. Weitere
Informationen finden Sie unter "ConvertFrom-StringData".
SIEHE AUCH
about_Escape_Characters
ConvertFrom-StringData