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 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 strängar med dubbla citat" ().
PowerShell identifierar dessa escape-sekvenser:
| Sequence | Description |
|---|---|
`0 |
Null |
`a |
Varning |
`b |
Backstegstangent |
`f |
Formulärfeed |
`n |
Ny rad |
`r |
Vagnretur |
`t |
Vågrät flik |
`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ärskilda parsningstoken:
| Sequence | Description |
|---|---|
-- |
Behandla återstående värden som argument, inte parametrar |
--% |
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 strängavslut eller indikatorer för postavslutning. Specialtecknet null motsvarar inte variabeln $null , som lagrar ett null-värde .
Avisering ('a)
Aviseringstecknet (`a) skickar en pipsignal 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"}
Backsteg ('b)
Backstegstecknet (`b) flyttar markören tillbaka ett tecken, men det tar inte bort några tecken.
Exemplet skriver ordet backup och flyttar sedan markören tillbaka två gånger. Vid den nya positionen skriver du sedan ett blanksteg följt av ordet out.
"backup`b`b out"
back out
Formulärflöde ('f)
Formulärmatningstecknet (`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 omedelbart 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 skrivs ö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 tabbtecknet (`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.
I det här exemplet infogas två flikar mellan varje kolumn.
"Column1`t`tColumn2`t`tColumn3"
Column1 Column2 Column3
Lodrät flik ('v)
Det lodräta fliktecknet (`v) går vidare till nästa lodräta tabbstopp och skriver återstående utdata vid den punkten. Å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 återgivna utdata från den lodräta fliken i några vanliga miljöer.
Värdprogrammet för Windows-konsolen tolkar (`v) som ett specialtecken utan extra avstånd.
There is a vertical tab♂between the words.
Windows-terminal återger det lodräta tabbtecknet som 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 en unix-baserad konsol 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.
Token för slutparametrar (--)
Token för slutparametrar (--) anger att alla argument som följer den ska skickas i sin faktiska form som om dubbla citattecken placerades runt dem. Om du till exempel använder -- kan du mata ut strängen -InputObject utan att använda citattecken eller tolka den som en parameter:
Write-Output -- -InputObject
-InputObject
Detta är en konvention som anges i POSIX Shell- och Utilities-specifikationen.
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 stoppparsningstoken efter programnamnet och före programargument som kan orsaka fel.
I det här exemplet Icacls använder kommandot stoppparsningstoken.
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 stoppparsningstoken finns i about_Parsing.