Informationen zu Regeln für AnführungszeichenAbout Quoting Rules

Kurze BeschreibungShort description

Beschreibt Regeln für die Verwendung von einfachen und doppelten Anführungszeichen in PowerShell.Describes rules for using single and double quotation marks in PowerShell.

Lange BeschreibungLong description

Anführungszeichen werden verwendet, um eine Literalzeichenfolge anzugeben.Quotation marks are used to specify a literal string. Sie können eine Zeichenfolge in einfache Anführungszeichen ' () oder doppelte Anführungszeichen " () einschließen.You can enclose a string in single quotation marks (') or double quotation marks (").

Anführungszeichen werden auch verwendet, um eine Here-Zeichenfolge zu erstellen.Quotation marks are also used to create a here-string. Eine Here-Zeichenfolge ist eine Zeichenfolge mit einfachem oder doppeltem Anführungszeichen, in der Anführungszeichen wörtlich interpretiert werden.A here-string is a single-quoted or double-quoted string in which quotation marks are interpreted literally. Eine here-Zeichenfolge kann sich über mehrere Zeilen erstrecken.A here-string can span multiple lines. Alle Zeilen in einer Here-Zeichenfolge werden als Zeichenfolgen interpretiert, obwohl sie nicht in Anführungszeichen eingeschlossen sind.All the lines in a here-string are interpreted as strings, even though they are not enclosed in quotation marks.

In Befehlen für Remotecomputer definieren Anführungszeichen die Teile des Befehls, die auf dem Remotecomputer ausgeführt werden.In commands to remote computers, quotation marks define the parts of the command that are run on the remote computer. In einer Remotesitzung bestimmen Anführungszeichen auch, ob die Variablen in einem Befehl zuerst auf dem lokalen Computer oder auf dem Remotecomputer interpretiert werden.In a remote session, quotation marks also determine whether the variables in a command are interpreted first on the local computer or on the remote computer.

Zeichenfolgen in einfachen und doppelten AnführungszeichenSingle and double-quoted strings

Eine in doppelte Anführungszeichen eingeschlossene Zeichenfolge ist eine erweiterbare Zeichenfolge.A string enclosed in double quotation marks is an expandable string. Variablennamen, denen ein Dollarzeichen ( ) vorangestellt $ ist, werden durch den Wert der Variablen ersetzt, bevor die Zeichenfolge zur Verarbeitung an den Befehl übergeben wird.Variable names preceded by a dollar sign ($) are replaced with the variable's value before the string is passed to the command for processing.

Beispiel:For example:

$i = 5
"The value of $i is $i."

Die Ausgabe dieses Befehls lautet:The output of this command is:

The value of 5 is 5.

Außerdem werden in einer Zeichenfolge mit doppelten Anführungszeichen Ausdrücke ausgewertet, und das Ergebnis wird in die Zeichenfolge eingefügt.Also, in a double-quoted string, expressions are evaluated, and the result is inserted in the string. Beispiel:For example:

"The value of $(2+3) is 5."

Die Ausgabe dieses Befehls lautet:The output of this command is:

The value of 5 is 5.

Eine Zeichenfolge, die in einfache Anführungszeichen eingeschlossen ist, ist eine ausführliche Zeichenfolge.A string enclosed in single-quotation marks is a verbatim string. Die Zeichenfolge wird genau bei der Eingabe an den Befehl übergeben.The string is passed to the command exactly as you type it. Es wird keine Ersetzung durchgeführt.No substitution is performed. Beispiel:For example:

$i = 5
'The value of $i is $i.'

Die Ausgabe dieses Befehls lautet:The output of this command is:

The value $i is $i.

Auf ähnliche Weise werden Ausdrücke in Zeichenfolgen in einfachen Anführungswerten nicht ausgewertet.Similarly, expressions in single-quoted strings are not evaluated. Sie werden als Literale interpretiert.They are interpreted as literals. Beispiel:For example:

'The value of $(2+3) is 5.'

Die Ausgabe dieses Befehls ist:The output of this command is:

The value of $(2+3) is 5.

Um das Ersetzen eines Variablenwerts in einer Zeichenfolge mit doppelten Anführungszeichen zu verhindern, verwenden Sie das Backtickzeichen ( ` )(ASCII 96), das das PowerShell-Escapezeichen ist.To prevent the substitution of a variable value in a double-quoted string, use the backtick character (`)(ASCII 96), which is the PowerShell escape character.

Im folgenden Beispiel verhindert das Backtickzeichen vor der ersten Variablen, dass PowerShell den Variablennamen durch $i seinen Wert ersetzt.In the following example, the backtick character that precedes the first $i variable prevents PowerShell from replacing the variable name with its value. Beispiel:For example:

$i = 5
"The value of `$i is $i."

Die Ausgabe dieses Befehls ist:The output of this command is:

The value $i is 5.

Damit doppelte Anführungszeichen in einer Zeichenfolge angezeigt werden, schließen Sie die gesamte Zeichenfolge in einfache Anführungszeichen ein.To make double-quotation marks appear in a string, enclose the entire string in single quotation marks. Beispiel:For example:

'As they say, "live and learn."'

Die Ausgabe dieses Befehls ist:The output of this command is:

As they say, "live and learn."

Sie können auch eine Zeichenfolge in einfache Anführungszeichenfolgen in eine Zeichenfolge mit doppelten Anführungszeichenfolgen umschließen.You can also enclose a single-quoted string in a double-quoted string. Beispiel:For example:

"As they say, 'live and learn.'"

Die Ausgabe dieses Befehls ist:The output of this command is:

As they say, 'live and learn.'

Oder doppelklicken Sie die Anführungszeichen um einen Ausdruck in doppelter Anführungszeichen.Or, double the quotation marks around a double-quoted phrase. Beispiel:For example:

"As they say, ""live and learn."""

Die Ausgabe dieses Befehls ist:The output of this command is:

As they say, "live and learn."

Um ein einfaches Anführungszeichen in eine Zeichenfolge in einfache Anführungszeichen einbetten zu können, verwenden Sie ein zweites aufeinander folgendes einfaches Anführungszeichen.To include a single quotation mark in a single-quoted string, use a second consecutive single quote. Beispiel:For example:

'don''t'

Die Ausgabe dieses Befehls ist:The output of this command is:

don't

Um powerShell zu zwingen, ein doppeltes Anführungszeichen wörtlich zu interpretieren, verwenden Sie ein Backtickzeichen.To force PowerShell to interpret a double quotation mark literally, use a backtick character. Dadurch wird verhindert, dass PowerShell das Anführungszeichen als Zeichenfolgentrennzeichen interpretiert.This prevents PowerShell from interpreting the quotation mark as a string delimiter. Beispiel:For example:

PS> "Use a quotation mark (`") to begin a string."
Use a quotation mark (") to begin a string.
PS> 'Use a quotation mark (`") to begin a string.'
Use a quotation mark (`") to begin a string.

Da der Inhalt von Zeichenfolgen in einfachen Anführungszeichen wörtlich interpretiert wird, wird das Backtickzeichen als Literalzeichen behandelt und in der Ausgabe angezeigt.Because the contents of single-quoted strings are interpreted literally, the backtick character is treated as a literal character and displayed in the output.

Here-stringsHere-strings

Die Anführungszeichenregeln für here-Zeichenfolgen unterscheiden sich geringfügig.The quotation rules for here-strings are slightly different.

Eine here-Zeichenfolge ist eine Zeichenfolge in einfachen oder doppelten Anführungszeichen, in der Anführungszeichen wörtlich interpretiert werden.A here-string is a single-quoted or double-quoted string in which quotation marks are interpreted literally. Eine here-Zeichenfolge kann sich über mehrere Zeilen erstrecken.A here-string can span multiple lines. Alle Zeilen in einer Here-Zeichenfolge werden als Zeichenfolgen interpretiert, obwohl sie nicht in Anführungszeichen eingeschlossen sind.All the lines in a here-string are interpreted as strings even though they are not enclosed in quotation marks.

Wie reguläre Zeichenfolgen werden Variablen durch ihre Werte in doppelten Anführungszeichen (here-strings) ersetzt.Like regular strings, variables are replaced by their values in double-quoted here-strings. In einfachen Here-Zeichenfolgen in Anführungszeichen werden Variablen nicht durch ihre Werte ersetzt.In single-quoted here-strings, variables are not replaced by their values.

Sie können here-strings für jeden Text verwenden, aber sie sind besonders nützlich für die folgenden Arten von Text:You can use here-strings for any text, but they are particularly useful for the following kinds of text:

  • Text, der literale Anführungszeichen enthältText that contains literal quotation marks
  • Mehrere Textzeilen, z. B. der Text in einem HTML- oder XML-CodeMultiple lines of text, such as the text in an HTML or XML
  • Der Hilfetext für ein Skript- oder FunktionsdokumentThe Help text for a script or function document

Eine Here-Zeichenfolge kann eines der folgenden Formate aufweisen, wobei <Enter> das Zeilenfeed oder das ausgeblendete Zeilenzeilzeichen darstellt, das beim Drücken der EINGABETASTE hinzugefügt wird.A here-string can have either of the following formats, where <Enter> represents the linefeed or newline hidden character that is added when you press the ENTER key.

Doppelte Anführungszeichen:Double-quotes:

@"<Enter>
<string> [string] ...<Enter>
"@

Einfache Anführungszeichen:Single-quotes:

@'<Enter>
<string> [string] ...<Enter>
'@

In beiden Formaten muss das schließende Anführungszeichen das erste Zeichen in der Zeile sein.In either format, the closing quotation mark must be the first character in the line.

Eine Here-Zeichenfolge enthält den gesamten Text zwischen den beiden ausgeblendeten Zeichen.A here-string contains all the text between the two hidden characters. In der Here-Zeichenfolge werden alle Anführungszeichen wörtlich interpretiert.In the here-string, all quotation marks are interpreted literally. Beispiel:For example:

@"
For help, type "get-help"
"@

Die Ausgabe dieses Befehls lautet:The output of this command is:

For help, type "get-help"

Die Verwendung einer Here-Zeichenfolge kann die Verwendung einer Zeichenfolge in einem Befehl vereinfachen.Using a here-string can simplify using a string in a command. Beispiel:For example:

@"
Use a quotation mark (') to begin a string.
"@

Die Ausgabe dieses Befehls lautet:The output of this command is:

Use a quotation mark (') to begin a string.

In einfachen Here-Zeichenfolgen in Anführungszeichen werden Variablen wörtlich interpretiert und genau reproduziert.In single-quoted here-strings, variables are interpreted literally and reproduced exactly. Beispiel:For example:

@'
The $profile variable contains the path
of your PowerShell profile.
'@

Die Ausgabe dieses Befehls lautet:The output of this command is:

The $profile variable contains the path
of your PowerShell profile.

In doppelten Anführungszeichen werden Variablen durch ihre Werte ersetzt.In double-quoted here-strings, variables are replaced by their values. Beispiel:For example:

@"
Even if you have not created a profile,
the path of the profile file is:
$profile.
"@

Die Ausgabe dieses Befehls ist:The output of this command is:

Even if you have not created a profile,
the path of the profile file is:
C:\Users\User1\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1.

Here-Zeichenfolgen werden in der Regel verwendet, um einer Variablen mehrere Zeilen zu zuweisen.Here-strings are typically used to assign multiple lines to a variable. Beispielsweise weist die folgende here-Zeichenfolge der -Variablen eine XML-Seite $page zu.For example, the following here-string assigns a page of XML to the $page variable.

$page = [XML] @"
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10"
xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10"
xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
        <command:name>
               Format-Table
        </command:name>
        <maml:description>
            <maml:para>Formats the output as a table.</maml:para>
        </maml:description>
        <command:verb>format</command:verb>
        <command:noun>table</command:noun>
        <dev:version></dev:version>
</command:details>
...
</command:command>
"@

Here-Strings sind auch ein praktisches Format für die Eingabe in das Cmdlet, das ConvertFrom-StringData here-strings in Hashtabellen konvertiert.Here-strings are also a convenient format for input to the ConvertFrom-StringData cmdlet, which converts here-strings to hash tables. Weitere Informationen finden Sie unter ConvertFrom-StringData.For more information, see ConvertFrom-StringData.

Siehe auchSee also

about_Special_Charactersabout_Special_Characters

ConvertFrom-StringDataConvertFrom-StringData