about_Special_Characters
Rövid leírás
Azokat a speciális karaktersorozatokat ismerteti, amelyek szabályozzák, hogy a PowerShell hogyan értelmezi a sorozat következő karaktereit.
Hosszú leírás
A PowerShell speciális karaktersorozatokat támogat, amelyek olyan karaktereket jelölnek, amelyek nem részei a standard karakterkészletnek. A szekvenciákat gyakran menekülési sorozatoknak nevezzük.
A menekülési sorozatok a háttér karakterrel kezdődnek, más néven a sír ékezettel (ASCII 96), és megkülönböztetik a kis- és nagybetűket. A backtick karaktert nevezhetjük menekülési karakternek is.
A feloldósorozatokat csak akkor értelmezi a rendszer, ha dupla idézőjeles ("
) sztringek tartalmazzák.
A PowerShell felismeri ezeket a feloldósorozatokat:
Sequence | Leírás |
---|---|
`0 |
Null |
`a |
Riasztás |
`b |
Backspace |
`e |
Escape (a PowerShell 6-ban hozzáadva) |
`f |
Űrlapcsatorna |
`n |
Új sor |
`r |
Kocsivissza |
`t |
Vízszintes lap |
`u{x} |
Unicode-feloldási sorozat (a PowerShell 6-ban hozzáadva) |
`v |
Függőleges lap |
A PowerShell egy speciális jogkivonattal is rendelkezik, amely jelzi, hogy hol szeretné leállítani az elemzést. A jogkivonatot követő összes karaktert a rendszer nem értelmezett literális értékként használja.
Speciális elemzési jogkivonatok:
Sequence | Leírás |
---|---|
-- |
A fennmaradó értékek kezelése argumentumként, nem paraméterként |
--% |
Az alábbiak elemzésének leállítása |
~ |
Tilde |
Null ('0)
A null (`0
) karakter üres szóközként jelenik meg a PowerShell-kimenetben.
Ez a funkció lehetővé teszi, hogy a PowerShell használatával null karaktert használó szövegfájlokat olvasson és dolgozz fel, például sztringkizárást vagy rekordkizárásjelzőket. A null speciális karakter nem egyenértékű a $null
null értéket tároló változóval.
Riasztás ('a)
A riasztás (`a
) karakter hangjelzést küld a számítógép hangszórójának.
Ezzel a karakterrel figyelmeztetheti a felhasználót egy közelgő műveletre. Az alábbi példa két hangjelzést küld a helyi számítógép hangszórójának.
for ($i = 0; $i -le 1; $i++){"`a"}
Backspace ('b)
A backspace (`b
) karakter egy karakterrel viszi vissza a kurzort, de egyetlen karaktert sem töröl.
A példa megírja a biztonsági mentés szót, majd kétszer visszaviszi a kurzort. Ezután az új pozícióban egy szóközt ír, amelyet a szó követ.
"backup`b`b out"
back out
Menekülés ('e)
Feljegyzés
Ez a speciális karakter a PowerShell 6.0-ban lett hozzáadva.
A escape (`e
) karaktert leggyakrabban egy virtuális terminálütemezés (ANSI escape sequence) megadására használják, amely módosítja a szöveg színét és más szöveges attribútumokat, például a félkövér és aláhúzást. Ezek a sorozatok a kurzor elhelyezésére és görgetésére is használhatók. A PowerShell-gazdagépnek támogatnia kell a virtuális terminálütemezéseket. Ellenőrizheti a logikai értéket $Host.UI.SupportsVirtualTerminal
annak megállapításához, hogy támogatottak-e ezek az ANSI-sorozatok.
Az ANSI-menekülési sorozatokról a Wikipédiában található ANSI escape code-cikkben talál további információt.
Az alábbi példa zöld előtérszínnel adja ki a szöveget.
$fgColor = 32 # green
"`e[${fgColor}mGreen text`e[0m"
Green text
Űrlapcsatorna ('f)
Az űrlapcsatorna (`f
) karakter egy nyomtatási utasítás, amely kibocsátja az aktuális lapot, és a következő oldalon folytatja a nyomtatást. Az űrlapcsatorna karakter csak a nyomtatott dokumentumokat érinti. Ez nem befolyásolja a képernyő kimenetét.
Új sor ('n)
Az új vonal (`n
) karakter közvetlenül a karakter után beszúr egy sortörést.
Ez a példa bemutatja, hogyan hozhat létre sortöréseket egy Write-Host
parancsban az új vonal karakterrel.
"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.
Kocsivissza ('r)
A kocsi visszatérési (`r
) karaktere az aktuális sor elejére helyezi a kimeneti kurzort, és folytatja az írást. Az aktuális sorban szereplő karakterek felülíródnak.
Ebben a példában a kocsivisszavétel előtti szöveg felülíródik.
Write-Host "These characters are overwritten.`rI want this text instead "
Figyelje meg, hogy a karakter előtti `r
szöveg nincs törölve, felülírva.
I want this text instead written.
Vízszintes lap (nem)
A vízszintes lap (`t
) karakter a következő tabulátorra lép, és ezen a ponton folytatja az írást. A PowerShell-konzol alapértelmezés szerint minden nyolcadik helyen tabulátort használ.
Ez a példa két lapot szúr be az egyes oszlopok közé.
"Column1`t`tColumn2`t`tColumn3"
Column1 Column2 Column3
Unicode-karakter ('u{x})
Feljegyzés
Ez a speciális karakter a PowerShell 6.0-ban lett hozzáadva.
A Unicode feloldósorozat (`u{x}
) lehetővé teszi bármilyen Unicode-karakter megadását a kódpont hexadecimális ábrázolásával. Ide tartoznak az egyszerű többnyelvű sík (>0xFFFF
) fölötti Unicode-karakterek, amelyek emoji karaktereket tartalmaznak, például a hüvelykujj felfelé (`u{1F44D}
) karaktert. A Unicode feloldósorozat legalább egy hexadecimális számjegyet igényel, és legfeljebb hat hexadecimális számjegyet támogat. A szekvencia maximális hexadecimális értéke .10FFFF
Ez a példa a felfelé mutató nyíl (↕) szimbólumot adja ki.
"`u{2195}"
Függőleges lap ('v)
A függőleges lap (`v
) karakter a következő függőleges tabulátorra lép, és az adott ponton lévő kimenetet írja. A függőleges lap renderelése eszköz- és terminálfüggő.
Write-Host "There is a vertical tab`vbetween the words."
Az alábbi példák a függőleges lap renderelt kimenetét mutatják be néhány gyakori környezetben.
A Windows Console gazdagépalkalmazás speciális karakterként értelmezi a (`v
) karaktert, további térköz hozzáadása nélkül.
There is a vertical tab♂between the words.
A Windows Terminál a függőleges tabulátor karaktert kocsivissza- és vonalcsatornaként jeleníti meg. A kimenet többi része a következő sor elején lesz kinyomtatva.
There is a vertical tab
between the words.
Nyomtatókon vagy unix-alapú konzolokon a függőleges tabulátor karakter a következő sorra lép, és a fennmaradó kimenetet ezen a ponton írja.
There is a vertical tab
between the words.
Sor folytatása
A backtick karakter a vonal végén is használható a PowerShell-elemző felé, hogy a parancs a következő sorban folytatódik. További információ: about_Parsing.
A paraméterek végének jogkivonata (--
)
A paraméterek záró jogkivonata (--
) azt jelzi, hogy az azt követő összes argumentumot a tényleges formájukban kell átadni, mintha dupla idézőjelek lettek volna elhelyezve körülöttük. A használatával --
például idézőjelek nélkül is kiadhatja a sztringet -InputObject
, vagy paraméterként értelmezheti:
Write-Output -- -InputObject
-InputObject
Ez egy konvenció, amelyet a POSIX Shell és a Utilities specifikáció határoz meg.
Stop-parsing token (--%)
A stop-parsing (--%
) jogkivonat megakadályozza, hogy a PowerShell PowerShell-parancsokként és -kifejezésekként értelmezze a sztringeket. Ez lehetővé teszi, hogy ezeket a sztringeket át lehessen adni más programoknak értelmezés céljából.
Helyezze a stop-parsing tokent a program neve után és a hibákat okozó programargumentumok elé.
Ebben a példában a Icacls
parancs a stop-parsing tokent használja.
icacls X:\VMS --% /grant Dom\HVAdmin:(CI)(OI)F
A PowerShell a következő sztringet küldi a következőnek Icacls
:
X:\VMS /grant Dom\HVAdmin:(CI)(OI)F
Ebben a második példában kétszer adjuk át a változót $HOME
a cmd.exe /c echo
parancsnak.
cmd.exe /c echo $HOME --% $HOME
A kimenet azt mutatja, hogy a PowerShell az első példányt $HOME
úgy értelmezi, hogy a változó értékét átadja a rendszer.cmd
A második példány $HOME
a stop-parsing jogkivonat után jön, így a függvény konstans sztringként adja át.
C:\Users\username $HOME
A stop-parsing tokenről további információt a about_Parsing című témakörben talál.
Tilde (~)
A tilde karakter (~
) különleges jelentéssel bír a PowerShellben. Ha az elérési út elején PowerShell-parancsokkal használják, a PowerShell kiterjeszti a tilde karaktert a felhasználó kezdőlapjára. Ha a tilde karaktert bárhol máshol használja az elérési úton, a rendszer literális karakterként kezeli.
A stop-parsing tokenről további információt a about_Parsing című témakörben talál.