Delen via


about_Special_Characters

Korte beschrijving

Beschrijft de speciale tekenreeksen die bepalen hoe PowerShell de volgende tekens in de reeks interpreteert.

Lange beschrijving

PowerShell ondersteunt een reeks speciale tekenreeksen die worden gebruikt om tekens weer te geven die geen deel uitmaken van de standaardtekenset. De reeksen worden ook wel escapereeksen genoemd.

Escapereeksen beginnen met het backtick-teken, ook wel het accent grave (ASCII 96) genoemd en zijn hoofdlettergevoelig. Het backtickteken kan ook worden aangeduid als het escape-teken.

Escape-reeksen worden alleen geïnterpreteerd wanneer deze zich in tekenreeksen met dubbele aanhalingstekens (") bevinden.

PowerShell herkent deze escapereeksen:

Sequence Beschrijving
`0 Null
`a Waarschuwing
`b Backspace
`e Escape (toegevoegd in PowerShell 6)
`f Formulierfeed
`n Nieuwe regel
`r Regelterugloop
`t Horizontaal tabblad
`u{x} Unicode-escapereeks (toegevoegd in PowerShell 6)
`v Verticaal tabblad

PowerShell heeft ook een speciaal token om aan te geven waar u wilt stoppen met parseren. Alle tekens die dit token volgen, worden gebruikt als letterlijke waarden die niet worden geïnterpreteerd.

Speciale parseringstokens:

Sequence Beschrijving
-- De resterende waarden behandelen als argumenten die geen parameters zijn
--% Stop met het parseren van alles dat volgt
~ Tilde

Null ('0)

Het null-teken (`0) wordt weergegeven als een lege spatie in PowerShell-uitvoer. Met deze functionaliteit kunt u PowerShell gebruiken om tekstbestanden te lezen en te verwerken die null-tekens gebruiken, zoals tekenreeksbeëindiging of indicatoren voor recordbeëindiging. Het speciale null-teken is niet gelijk aan de $null variabele, waarmee een null-waarde wordt opgeslagen .

Waarschuwing ('a)

Het waarschuwingsteken (`a) stuurt een piepsignaal naar de luidspreker van de computer. U kunt dit teken gebruiken om een gebruiker te waarschuwen voor een dreigende actie. In het volgende voorbeeld worden twee piepsignalen naar de luidspreker van de lokale computer verzonden.

for ($i = 0; $i -le 1; $i++){"`a"}

Backspace ('b)

Met het teken Backspace (`b) wordt de cursor één teken teruggezet, maar worden geen tekens verwijderd.

In het voorbeeld wordt de back-up van het woord geschreven en wordt de cursor twee keer teruggezet. Vervolgens schrijft u op de nieuwe positie een spatie gevolgd door het woord uit.

"backup`b`b out"
back out

Escape ('e)

Notitie

Dit speciale teken is toegevoegd in PowerShell 6.0.

Het escapeteken (`e) wordt meestal gebruikt om een virtuele terminalreeks (ANSI-escapereeks) op te geven waarmee de kleur van tekst en andere tekstkenmerken, zoals vet en onderstreept, wordt gewijzigd. Deze reeksen kunnen ook worden gebruikt voor het plaatsen en schuiven van cursors. De PowerShell-host moet virtuele terminalreeksen ondersteunen. U kunt de booleaanse waarde $Host.UI.SupportsVirtualTerminal controleren om te bepalen of deze ANSI-reeksen worden ondersteund.

Zie het ANSI-escapecodeartikel in Wikipedia voor meer informatie over ANSI-escapereeksen.

In het volgende voorbeeld wordt tekst met een groene voorgrondkleur uitgevoerd.

$fgColor = 32 # green
"`e[${fgColor}mGreen text`e[0m"
Green text

Formulierfeed ('f)

Het teken van de formulierfeed (`f) is een afdrukinstructie die de huidige pagina uitwerpt en verdergaat met afdrukken op de volgende pagina. Het formulierfeedteken is alleen van invloed op afgedrukte documenten. Dit heeft geen invloed op schermuitvoer.

Nieuwe regel ('n)

Met het nieuwe regelteken (`n) wordt direct na het teken een regeleinde ingevoegd.

In dit voorbeeld ziet u hoe u het nieuwe regelteken gebruikt om regeleinden in een Write-Host opdracht te maken.

"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.

Regelterugloop ('r)

Het regelterugloopteken (`r) verplaatst de uitvoercursor naar het begin van de huidige regel en gaat verder met schrijven. Alle tekens op de huidige regel worden overschreven.

In dit voorbeeld wordt de tekst voordat de regelterugloop wordt overschreven.

Write-Host "These characters are overwritten.`rI want this text instead "

U ziet dat de tekst voordat het `r teken niet wordt verwijderd, wordt overschreven.

I want this text instead written.

Horizontaal tabblad ('t)

Het horizontale tabteken (`t) gaat naar de volgende tabstop en gaat verder met schrijven op dat moment. Standaard heeft de PowerShell-console een tabstop bij elke achtste spatie.

In dit voorbeeld worden twee tabbladen ingevoegd tussen elke kolom.

"Column1`t`tColumn2`t`tColumn3"
Column1         Column2         Column3

Unicode-teken ('u{x})

Notitie

Dit speciale teken is toegevoegd in PowerShell 6.0.

Met de Unicode-escapereeks (`u{x}) kunt u elk Unicode-teken opgeven door de hexadecimale weergave van het bijbehorende codepunt. Dit omvat Unicode-tekens boven het meertalige basisvlak (>0xFFFF) dat emojitekens bevat, zoals de duim omhoog (`u{1F44D}) teken. De Unicode-escapereeks vereist ten minste één hexadecimaal cijfer en ondersteunt maximaal zes hexadecimale cijfers. De maximale hexadecimale waarde voor de reeks is 10FFFF.

In dit voorbeeld wordt het symbool pijl-omhoog (↕) uitgevoerd.

"`u{2195}"

Verticaal tabblad ('v)

Het verticale tabteken (`v) gaat naar de volgende verticale tabstop en schrijft de resterende uitvoer op dat moment. De weergave van het verticale tabblad is apparaat- en terminalafhankelijk.

Write-Host "There is a vertical tab`vbetween the words."

In de volgende voorbeelden ziet u de weergegeven uitvoer van het verticale tabblad in enkele algemene omgevingen.

De Windows Console-hosttoepassing interpreteert (`v) als een speciaal teken zonder extra afstand toegevoegd.

There is a vertical tab♂between the words.

In de Windows-terminal wordt het verticale tabteken weergegeven als regelterugloop en regelinvoer. De rest van de uitvoer wordt aan het begin van de volgende regel afgedrukt.

There is a vertical tab
between the words.

Op printers of in een unix-console gaat het verticale tabteken naar de volgende regel en schrijft de resterende uitvoer op dat moment.

There is a vertical tab
                       between the words.

Regelvervolging

Het backtickteken kan ook aan het einde van een regel worden gebruikt als signaal voor de PowerShell-parser dat de opdracht op de volgende regel wordt voortgezet. Zie about_Parsing voor meer informatie.

Het token einde van parameters (--)

Het token einde van parameters (--) geeft aan dat alle argumenten die erop volgen, moeten worden doorgegeven in hun werkelijke vorm alsof er dubbele aanhalingstekens rond deze aanhalingstekens zijn geplaatst. U kunt bijvoorbeeld -- de tekenreeks -InputObject uitvoeren zonder aanhalingstekens te gebruiken of deze als parameter te laten interpreteren:

Write-Output -- -InputObject
-InputObject

Dit is een conventie die is opgegeven in de POSIX Shell- en Utilities-specificatie.

Stop-parsing-token (--%)

Met het token voor stoppen parseren (--%) voorkomt u dat PowerShell tekenreeksen interpreteert als PowerShell-opdrachten en -expressies. Hierdoor kunnen deze tekenreeksen worden doorgegeven aan andere programma's voor interpretatie.

Plaats het stopparseringstoken na de programmanaam en vóór programmaargumenten die fouten kunnen veroorzaken.

In dit voorbeeld gebruikt de Icacls opdracht het token voor stoppen parseren.

icacls X:\VMS --% /grant Dom\HVAdmin:(CI)(OI)F

PowerShell verzendt de volgende tekenreeks naar Icacls.

X:\VMS /grant Dom\HVAdmin:(CI)(OI)F

In dit tweede voorbeeld geven we de variabele $HOME twee keer door aan de cmd.exe /c echo opdracht.

cmd.exe /c echo $HOME --% $HOME

In de uitvoer ziet u dat het eerste exemplaar $HOME wordt geïnterpreteerd door PowerShell, zodat de waarde van de variabele wordt doorgegeven aan cmd. Het tweede exemplaar van $HOME komt na het stop-parsing-token, dus het wordt doorgegeven als een letterlijke tekenreeks.

C:\Users\username  $HOME

Zie about_Parsing voor meer informatie over het token voor stoppen met parseren.

Tilde (~)

Het tilde-teken (~) heeft een speciale betekenis in PowerShell. Wanneer het wordt gebruikt met PowerShell-opdrachten aan het begin van een pad, breidt PowerShell het tilde-teken uit naar de basismap van de gebruiker. Als u het tilde-teken ergens anders in een pad gebruikt, wordt het beschouwd als een letterlijk teken.

Zie about_Parsing voor meer informatie over het token voor stoppen met parseren.

Zie ook