about_Special_Characters
Kurze Beschreibung
Beschreibt die Sonderzeichensequenzen, die steuern, wie PowerShell die nächsten Zeichen in der Sequenz interpretiert.
Lange Beschreibung
PowerShell unterstützt eine Reihe von Sonderzeichenabfolgen, die verwendet werden, um Zeichen darzustellen, die nicht Teil des Standardzeichensatzes sind. Die Sequenzen werden häufig als Escapesequenzen bezeichnet.
Escapesequenzen beginnen mit dem Backtick-Zeichen, das als Graviszeichen (ASCII 96) bezeichnet wird, und beachten Sie die Groß-/Kleinschreibung. Das Hintergrundzeichen kann auch als Escapezeichen bezeichnet werden.
Escapesequenzen werden nur interpretiert, wenn sie in doppelt zitierten ("
) Zeichenfolgen enthalten sind.
PowerShell erkennt diese Escapesequenzen:
Sequence | Beschreibung |
---|---|
`0 |
Null |
`a |
Warnung |
`b |
Rücktaste |
`e |
Escape (in PowerShell 6 hinzugefügt) |
`f |
Seitenvorschub |
`n |
Zeilenwechsel |
`r |
Wagenrücklauf |
`t |
Horizontaler Tabulator |
`u{x} |
Unicode-Escapesequenz (in PowerShell 6 hinzugefügt) |
`v |
Vertikaler Tabulator |
PowerShell verfügt auch über ein spezielles Token, um zu markieren, wo die Analyse beendet werden soll. Alle Zeichen, die diesem Token folgen, werden als Literalwerte verwendet, die nicht interpretiert werden.
Spezielle Analysetoken:
Sequence | Beschreibung |
---|---|
-- |
Behandeln der verbleibenden Werte als Argumente und keine Parameter |
--% |
Beenden Der Analyse von Elementen, die folgt |
~ |
Tilde |
Null ('0)
Das Nullzeichen (`0
) wird als leerer Leerraum in der PowerShell-Ausgabe angezeigt.
Mit dieser Funktion können Sie PowerShell verwenden, um Textdateien zu lesen und zu verarbeiten, die NULL-Zeichen verwenden, z. B. Zeichenfolgenende- oder Datensatzbeendigungsindikatoren. Das Sonderzeichen null entspricht nicht der $null
Variablen, die einen NULL-Wert speichert.
Warnung ('a)
Das Benachrichtigungszeichen (`a
) sendet ein Signal signal an den Lautsprecher des Computers.
Sie können dieses Zeichen verwenden, um einen Benutzer vor einer bevorstehenden Aktion zu warnen. Im folgenden Beispiel werden zwei Signaltonsignale an den Lautsprecher des lokalen Computers gesendet.
for ($i = 0; $i -le 1; $i++){"`a"}
Rücktaste ('b)
Das Rücktastenzeichen (`b
) verschiebt den Cursor um ein Zeichen zurück, löscht jedoch keine Zeichen.
Im Beispiel wird das Wort "Backup " geschrieben und der Cursor dann zweimal zurück verschoben. Anschließend schreibt an der neuen Position ein Leerzeichen gefolgt von dem Wort.
"backup`b`b out"
back out
Escapezeichen ('e)
Hinweis
Dieses Sonderzeichen wurde in PowerShell 6.0 hinzugefügt.
Das Escapezeichen (`e
) wird am häufigsten verwendet, um eine virtuelle Terminalsequenz (ANSI-Escapesequenz) anzugeben, die die Farbe von Text und andere Textattribute wie Fett- und Unterstreichung ändert. Diese Sequenzen können auch zum Positionieren und Scrollen von Cursorn verwendet werden. Der PowerShell-Host muss virtuelle Terminalsequenzen unterstützen. Sie können den booleschen Wert überprüfen, um $Host.UI.SupportsVirtualTerminal
festzustellen, ob diese ANSI-Sequenzen unterstützt werden.
Weitere Informationen zu ANSI-Escapesequenzen finden Sie im Wikipedia-Artikel ANSI-Escapesequenz.
Im folgenden Beispiel wird Text mit einer grünen Vordergrundfarbe ausgegeben.
$fgColor = 32 # green
"`e[${fgColor}mGreen text`e[0m"
Green text
Formularfeed ('f)
Das Formularfeedzeichen (`f
) ist eine Druckanweisung, die die aktuelle Seite auswirft und den Druck auf der nächsten Seite fortsetzt. Das Formularfeedzeichen wirkt sich nur auf gedruckte Dokumente aus. Dies wirkt sich nicht auf die Bildschirmausgabe aus.
Neue Zeile ('n)
Das neue Zeilenzeichen (`n
) fügt unmittelbar nach dem Zeichen einen Zeilenumbruch ein.
In diesem Beispiel wird gezeigt, wie Sie mit dem neuen Zeilenzeichen Zeilenumbrüche in einem Write-Host
Befehl erstellen.
"There are two line breaks to create a blank line`n`nbetween the words."
There are two line breaks to create a blank line
between the words.
Wagenrücklauf ('r)
Das Wagenrücklaufzeichen (`r
) verschiebt den Ausgabecursor an den Anfang der aktuellen Zeile und setzt den Schreibvorgang fort. Alle Zeichen in der aktuellen Zeile werden überschrieben.
In diesem Beispiel wird der Text vor dem Wagenrücklauf überschrieben.
Write-Host "These characters are overwritten.`rI want this text instead "
Beachten Sie, dass der Text, bevor das `r
Zeichen nicht gelöscht wird, überschrieben wird.
I want this text instead written.
Horizontale Registerkarte (nicht)
Das zeichen horizontale Tabstopp (`t
) wechselt zum nächsten Tabstopp und setzt das Schreiben an diesem Punkt fort. Standardmäßig verfügt die PowerShell-Konsole über einen Tabstopp an jedem achten Leerzeichen.
In diesem Beispiel werden zwei Registerkarten zwischen jeder Spalte eingefügt.
"Column1`t`tColumn2`t`tColumn3"
Column1 Column2 Column3
Unicode-Zeichen ('u{x})
Hinweis
Dieses Sonderzeichen wurde in PowerShell 6.0 hinzugefügt.
Mit der Unicode-Escapesequenz (`u{x}
) können Sie jedes Unicode-Zeichen durch die hexadezimale Darstellung des Codepunkts angeben. Dazu gehören Unicode-Zeichen oberhalb der mehrsprachigen Basisebene (>0xFFFF
), die Emoji-Zeichen wie die Daumen nach oben (`u{1F44D}
) enthält. Die Unicode-Escapesequenz erfordert mindestens eine Hexadezimalziffer und unterstützt bis zu sechs Hexadezimalziffern. Der maximale Hexadezimalwert für die Sequenz lautet 10FFFF
.
In diesem Beispiel wird das Nach-unten-Symbol (↕) ausgegeben.
"`u{2195}"
Vertikale Registerkarte ('v)
Das vertikale Tabstoppzeichen (`v
) wechselt zum nächsten vertikalen Tabstopp und schreibt die verbleibende Ausgabe an diesem Punkt. Das Rendern der vertikalen Registerkarte ist geräte- und terminalabhängig.
Write-Host "There is a vertical tab`vbetween the words."
Die folgenden Beispiele zeigen die gerenderte Ausgabe der vertikalen Registerkarte in einigen gängigen Umgebungen.
Die Windows Console-Hostanwendung interpretiert (`v
) als Sonderzeichen ohne zusätzlichen Abstand.
There is a vertical tab♂between the words.
Die Windows-Terminal rendert das vertikale Tabstoppzeichen als Wagenrücklauf und Zeilenvorschub. Der Rest der Ausgabe wird am Anfang der nächsten Zeile gedruckt.
There is a vertical tab
between the words.
Auf Druckern oder in unixbasierten Konsolen wechselt das vertikale Tabstoppzeichen zur nächsten Zeile und schreibt die verbleibende Ausgabe an diesem Punkt.
There is a vertical tab
between the words.
Zeilenfortsetzung
Das Backtick-Zeichen kann auch am Ende einer Zeile als Signal für den PowerShell-Parser verwendet werden, dass der Befehl in der nächsten Zeile fortgesetzt wird. Weitere Informationen finden Sie unter about_Parsing.
Das End-of-Parameters-Token (--
)
Das End-of-Parameters-Token (--
) gibt an, dass alle darauf folgenden Argumente in ihrer tatsächlichen Form übergeben werden müssen, als ob doppelte Anführungszeichen um sie herum platziert wurden. Sie --
können beispielsweise die Zeichenfolge -InputObject
ohne Anführungszeichen ausgeben oder als Parameter interpretiert haben:
Write-Output -- -InputObject
-InputObject
Dies ist eine Konvention, die in der POSIX Shell and Utilities-Spezifikation angegeben ist.
Stop-Parsing-Token (--%)
Das Stoppanalysetoken (--%
) verhindert, dass PowerShell Zeichenfolgen als PowerShell-Befehle und -Ausdrücke interpretiert. Dadurch können diese Zeichenfolgen zur Interpretation an andere Programme übergeben werden.
Platzieren Sie das Stoppanalysetoken nach dem Programmnamen und vor Programmargumenten, die Fehler verursachen können.
In diesem Beispiel verwendet der Icacls
Befehl das Stop-Parsing-Token.
icacls X:\VMS --% /grant Dom\HVAdmin:(CI)(OI)F
PowerShell sendet die folgende Zeichenfolge an Icacls
.
X:\VMS /grant Dom\HVAdmin:(CI)(OI)F
In diesem zweiten Beispiel übergeben wir die Variable $HOME
zweimal an den cmd.exe /c echo
Befehl.
cmd.exe /c echo $HOME --% $HOME
Die Ausgabe zeigt, dass die erste Instanz von $HOME
PowerShell interpretiert wird, sodass der Wert der Variablen übergeben cmd
wird. Die zweite Instanz von $HOME
kommt nach dem Stop-Parsing-Token, sodass sie als Literalzeichenfolge übergeben wird.
C:\Users\username $HOME
Weitere Informationen zum Stop-Parsing-Token finden Sie unter about_Parsing.
Tilde (~)
Das Tildezeichen (~
) hat in PowerShell eine besondere Bedeutung. Wenn sie mit PowerShell-Befehlen am Anfang eines Pfads verwendet wird, erweitert PowerShell das Tildezeichen in das Startverzeichnis des Benutzers. Wenn Sie das Tildezeichen an einer anderen Stelle in einem Pfad verwenden, wird es als Literalzeichen behandelt.
Weitere Informationen zum Stop-Parsing-Token finden Sie unter about_Parsing.