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 tekensreeksen die worden gebruikt om tekens weer te geven die geen deel uitmaken van de standaardtekenset. De reeksen worden meestal escape-reeksen genoemd.

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

Escape-reeksen worden alleen geïnterpreteerd als deze zijn opgenomen in tekenreeksen met dubbele aanhalingstekens (").

PowerShell herkent deze escapereeksen:

Reeks Description
`0 Null
`a Waarschuwing
`b Backspace
`f Formulierfeed
`n Nieuwe regel
`r Regelterugloop
`t Horizontaal tabblad
`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 die geen parameters zijn
--% Stop met het parseren van alles 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) verzendt een piepsignaal naar de luidspreker van de computer. U kunt dit teken gebruiken om een gebruiker te waarschuwen voor een naderende 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 er worden geen tekens verwijderd.

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

"backup`b`b out"
back out

Formulierfeed ('f)

Het formulierfeedteken (`f) is een afdrukinstructie die de huidige pagina uitwerpt en doorgaat met afdrukken op de volgende pagina. Het formulierfeedteken is alleen van invloed op afgedrukte documenten. Dit heeft geen invloed op de 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 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 verder naar de volgende tabstop en blijft op dat punt schrijven. Standaard heeft de PowerShell-console een tabstop op elke achtste spatie.

In dit voorbeeld worden twee tabbladen ingevoegd tussen elke kolom.

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

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 afhankelijk van het apparaat en de terminal.

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

There is a vertical tab
                       between the words.

Het token end-of-parameters (--)

Het token end-of-parameters (--) geeft aan dat alle argumenten die erop volgen, in hun werkelijke vorm moeten worden doorgegeven alsof er dubbele aanhalingstekens rond de 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 SPECIFICATIE van POSIX Shell en Hulpprogramma's.

Stop-parsing-token (--%)

Het token voor stopparsering (--%) voorkomt dat PowerShell tekenreeksen interpreteert als PowerShell-opdrachten en -expressies. Hierdoor kunnen deze tekenreeksen worden doorgegeven aan andere programma's voor interpretatie.

Plaats het stop-parsing-token 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

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 twee keer 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, zodat 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