about_Special_Characters

Kort beskrivning

Beskriver de specialteckensekvenser 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 accenttecknet, som kallas accent (ASCII 96) och är fallkänsliga. Bakåtklickstecknet kan även kallas escape-tecknet.

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

PowerShell identifierar dessa escape-sekvenser:

Sequence Description
`0 Null
`a Varning
`b Backsteg
`e Escape
`f Formulärflöde
`n Ny rad
`r Vagnretur
`t Vågrät flik
`u{x} Escape-sekvens för Unicode
`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 denna token används som literalvärden som inte tolkas.

Särskild parsningstoken:

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

Null ('0)

Nulltecknet ( `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 avslutningsindikatorer för strängar eller poster. Null-specialtecknet motsvarar inte variabeln $null , som lagrar ett null-värde.

Avisering ('a)

Aviseringstecknet `a ( ) skickar en pipsignal till datorns talare. 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å pip-signaler till den lokala datorns talare.

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

Backsteg ('b)

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

I exemplet skriver vi ordet backup och flyttar sedan markören tillbaka två gånger. Vid den nya positionen skriver sedan ett blanksteg följt av ordet ut.

"backup`b`b out"
back out

Escape (e)

Escape-tecknet ( ) används oftast för att ange en `e virtuell terminalsekvens (ANSI-escape-sekvens) som ändrar färgen på text och andra textattribut som 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 för $Host.UI.SupportsVirtualTerminal för att avgöra om dessa ANSI-sekvenser stöds.

Mer information om ANSI-escape-sekvenser 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ärflöde ('f)

Formulärfeeden ( `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 bara 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 före vagnretur över.

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

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

I want this text instead written.

Vågrät flik (inte)

Det vågräta tabbtecknet ( `t ) avancerar till nästa tabbstopp och fortsätter att skriva vid den tidpunkten. Som standard har PowerShell-konsolen ett tabbstopp vid varje åttonde utrymme.

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 ( ) kan du ange ett Unicode-tecken med `u{x} den hexadecimala representationen av dess kodpunkt. Detta inkluderar Unicode-tecken ovanför det grundläggande flerspråkiga planet (> ) som innehåller emoji-tecken, till exempel tecknet 0xFFFF thumbs up ( `u{1F44D} ). 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 .

Det här exemplet visar symbolen för uppåtpilen (↕).

"`u{2195}"

Lodrät flik ('v)

Det lodräta tabbtecknet ( `v ) avancerar till nästa lodräta tabbstopp och skriver återstående utdata vid den tidpunkten. Återgivningen av den lodräta fliken är enhets- och terminalberoende.

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

I följande exempel visas renderade utdata från den lodräta fliken i vissa vanliga miljöer.

Det Windows Console-värdprogrammet tolkar ( `v ) som ett specialtecken utan extra avstånd tillagt.

There is a vertical tab♂between the words.

Den Windows-terminal renderar det lodräta tabbtecknet som en vagnretur och radmatning. Resten av utdata skrivs ut i början av nästa rad.

There is a vertical tab
between the words.

På skrivare eller i unix-baserade konsoler går det lodräta tabbtecknet vidare till nästa rad och skriver återstående utdata vid den tidpunkten.

There is a vertical tab
                       between the words.

Stoppa parsningstoken (--%)

Token stop-parsing ( --% ) förhindrar 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 stop-parsing-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 $HOME namnet till funktionen två gånger.

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

showArgs $HOME --% $HOME

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

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

Mer information om stop-parsing-token finns i about_Parsing.

Se även

about_Quoting_Rules