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

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.

Lásd még