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 set speciale tekenreeksen die worden gebruikt om tekens weer te geven die geen deel uitmaken van de standaardtekenset. De reeksen worden ook wel escape-reeksen genoemd.

Escape-reeksen beginnen met het backtick-teken, ook wel het accent van het graf (ASCII 96) genoemd en zijn hoofdlettergevoelig. Het backtick-teken 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 escape-reeksen:

Reeks Description
`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 te markeren waar u wilt stoppen met parseren. Alle tekens die dit token volgen, worden gebruikt als letterlijke waarden die niet worden geïnterpreteerd.

Speciale parseringstokens:

Reeks Description
-- De resterende waarden behandelen als argumenten zonder parameters
--% Stop met het parseren van iets dat volgt

Null ('0)

Het null-teken (`0) wordt weergegeven als een lege ruimte 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 recordbeëindigingsindicatoren. 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 het woord back-up geschreven en wordt de cursor twee keer teruggezet. Vervolgens schrijft u op de nieuwe positie een spatie gevolgd door het woord.

"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 onderstreping, wordt gewijzigd. Deze reeksen kunnen ook worden gebruikt voor het positioneren en schuiven van cursors. De PowerShell-host moet ondersteuning bieden voor virtuele terminalreeksen. U kunt de booleaanse waarde $Host.UI.SupportsVirtualTerminal controleren om te bepalen of deze ANSI-reeksen worden ondersteund.

Zie ANSI_escape_code 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 formulierfeedteken (`f) is een afdrukinstructie die de huidige pagina uitwerpt en blijft afdrukken op de volgende pagina. Het formulierfeedteken is alleen van invloed op afgedrukte documenten. Dit heeft geen invloed op schermuitvoer.

Nieuwe regel ('n)

Het nieuwe regelteken (`n) voegt direct na het teken een regeleinde in.

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

"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 punt. Standaard heeft de PowerShell-console een tabstop bij elke achtste ruimte.

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) met emojitekens, 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-omlaag (↕) uitgevoerd.

"`u{2195}"

Verticaal tabblad ('v)

Het verticale tabteken (`v) gaat naar de volgende verticale tabstop en schrijft de resterende uitvoer op dat punt. 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 een aantal algemene omgevingen.

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

There is a vertical tab♂between the words.

De Windows Terminal geeft het verticale tabteken weer als een regelterugloop en regelfeed. 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 punt.

There is a vertical tab
                       between the words.

Het token einde van parameters (--)

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

Write-Output -- -InputObject
-InputObject

Dit is een conventie die is opgegeven in de specificatie posix shell en hulpprogramma's.

Stop-parsing-token (--%)

Met het stopparseringstoken (--%) 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 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

Hier volgt nog een voorbeeld. De functie showArgs voert de waarden uit die eraan zijn doorgegeven. In dit voorbeeld geven we de variabele met de naam $HOME tweemaal door aan de functie.

function showArgs {
  "`$args = " + ($args -join '|')
}

showArgs $HOME --% $HOME

U kunt in de uitvoer zien dat de variabele $HOME voor de eerste parameter wordt geïnterpreteerd door PowerShell, zodat de waarde van de variabele wordt doorgegeven aan de functie. Het tweede gebruik van $HOME komt na het stop-parsing-token, dus de tekenreeks '$HOME' wordt doorgegeven aan de functie zonder interpretatie.

$args = C:\Users\username|--%|$HOME

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

Zie ook