Dela via


Om specialtecken

Kort beskrivning

Beskriver specialteckensekvenserna som styr hur PowerShell tolkar nästa tecken i sekvensen.

Lång beskrivning

PowerShell stöder en uppsättning specialteckensekvenser som används för att representera tecken som inte ingår i standardteckenuppsättningen. Sekvenserna kallas ofta escape-sekvenser.

Escape-sekvenser börjar med backtick-tecknet, som kallas grav accent (ASCII 96), och är skiftlägeskänsliga. Backtick-tecknet kan också kallas escape-tecknet.

Escape-sekvenser tolkas endast när de finns i dubbelciterade (") strängar.

PowerShell identifierar dessa escape-sekvenser:

Sequence Description
`0 Null
`a Varning
`b Backsteg
`e Escape
`f Formulärfeed
`n Ny rad
`r Vagnretur
`t Vågrät flik
`u{x} Unicode escape-sekvens
`v Lodrät flik

PowerShell har också en särskild token för att markera var du vill att parsningen ska stoppas. Alla tecken som följer den här token används som literalvärden som inte tolkas.

Särskild parsningstoken:

Sequence Description
--% Sluta parsa något som följer

Null ('0)

Null-tecknet (`0) visas som ett tomt utrymme i PowerShell-utdata. Med den här funktionen kan du använda PowerShell för att läsa och bearbeta textfiler som använder null-tecken, till exempel strängavslut eller indikatorer för postavslut. Specialtecknet null motsvarar inte variabeln $null , som lagrar ett null-värde .

Avisering ('a)

Aviseringstecknet (`a) skickar en signal till datorns högtalare. Du kan använda det här tecknet för att varna en användare om en kommande åtgärd. I följande exempel skickas två pipsignaler till den lokala datorns högtalare.

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

Backspace ('b)

Backstegstecknet (`b) flyttar markören tillbaka ett tecken, men tar inte bort några tecken.

Exemplet skriver ordet backup och flyttar sedan markören tillbaka två gånger. Skriv sedan ett blanksteg följt av ordet out på den nya positionen.

"backup`b`b out"
back out

Escape ('e)

Escape-tecknet (`e) används oftast för att ange en virtuell terminalsekvens (ANSI-escape-sekvens) som ändrar färgen på text och andra textattribut, till exempel fetstil och understrykning. Dessa sekvenser kan också användas för markörpositionering och rullning. PowerShell-värden måste ha stöd för virtuella terminalsekvenser. Du kan kontrollera det booleska värdet $Host.UI.SupportsVirtualTerminal för för att avgöra om dessa ANSI-sekvenser stöds.

Mer information om ANSI-escapesekvenser finns i ANSI_escape_code.

I följande exempel matas text ut med en grön förgrundsfärg.

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

Formulärfeed ('f)

Formulärflödestecknet (`f) är en utskriftsinstruktion som matar ut den aktuella sidan och fortsätter att skriva ut på nästa sida. Formulärflödestecknet påverkar endast utskrivna dokument. Det påverkar inte skärmutdata.

Ny rad ('n)

Det nya radtecknet (`n) infogar en radbrytning direkt efter tecknet.

Det här exemplet visar hur du använder det nya radtecknet för att skapa radbrytningar i ett Write-Host kommando.

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

Vagnretur ('r)

Vagnreturtecknet (`r) flyttar utdatamarkören till början av den aktuella raden och fortsätter att skriva. Alla tecken på den aktuella raden skrivs över.

I det här exemplet skrivs texten innan vagnreturen över.

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

Observera att texten innan `r tecknet inte tas bort skrivs över.

I want this text instead written.

Vågrät flik (inte)

Det vågräta fliktecknet (`t) går vidare till nästa tabbstopp och fortsätter att skriva vid den tidpunkten. Som standard har PowerShell-konsolen ett tabbstopp vid var åttonde plats.

Det här exemplet infogar två flikar mellan varje kolumn.

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

Unicode-tecken ('u{x})

Med Unicode-escape-sekvensen (`u{x}) kan du ange alla Unicode-tecken efter hexadecimal representation av dess kodpunkt. Detta inkluderar Unicode-tecken ovanför det grundläggande flerspråkiga planet (>0xFFFF) som innehåller emoji-tecken som tummen upp (`u{1F44D}) tecken. Unicode-escape-sekvensen kräver minst en hexadecimal siffra och stöder upp till sex hexadecimala siffror. Det maximala hexadecimala värdet för sekvensen är 10FFFF.

I det här exemplet matas upp nedåtpilen (↕) ut.

"`u{2195}"

Lodrät flik ('v)

Det vågräta fliktecknet (`v) avancerar till nästa lodräta tabbstopp och skriver återstående utdata vid den punkten. Detta har ingen effekt i windows-standardkonsolen.

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

I följande exempel visas utdata som du får på en skrivare eller i en annan konsolvärd.

There is a vertical tab
                       between the words.

Stoppa parsningstoken (--%)

Token för stoppparsning (--%) hindrar PowerShell från att tolka strängar som PowerShell-kommandon och uttryck. Detta gör att dessa strängar kan skickas till andra program för tolkning.

Placera stoppparsing-token efter programnamnet och före programargument som kan orsaka fel.

I det här exemplet Icacls använder kommandot token stop-parsing.

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

PowerShell skickar följande sträng till Icacls.

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

Här är ett annat exempel. Funktionen showArgs matar ut de värden som skickas till den. I det här exemplet skickar vi variabeln med namnet $HOME till funktionen två gånger.

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

showArgs $HOME --% $HOME

Du kan se i utdata att variabeln $HOME för den första parametern tolkas av PowerShell så att värdet för variabeln skickas till funktionen. Den andra användningen av $HOME kommer efter stoppparsningstoken, så strängen "$HOME" skickas till funktionen utan tolkning.

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

Mer information om token för stoppparsning finns i about_Parsing.

Se även

about_Quoting_Rules