Az idézőjelek használata arra szolgál, hogy a PowerShell számára egyébként valamiféle speciális jelentéssel bíró szövegdarabokat egyszerű karakterláncként olvastassuk be. A PowerShellben kétfajta idézőjel létezik. Az egyik a macskaköröm (” ), a másik az aposztróf (’ ). Ez utóbbi nem tévesztendő össze a „visszafele aposztróffal” (` - AltGr + 7), ami az Escape , azaz „hatástalanító” karakter.
PS C:\> $szöveg = "karaktersorozat"
PS C:\> $szöveg
karaktersorozat
PS C:\> "Ez itt egy $szöveg."
Ez itt egy karaktersorozat.
PS C:\> 'Ez itt egy $szöveg'
Ez itt egy $szöveg
PS C:\>
A fenti példában látszik, hogy a macskaköröm (”) közti szövegben a PowerShell észreveszi a változókat (a $ jel alapján) és behelyettesíti a változó értékét. Az aposztróf (’)-nál nem értékel ki semmit sem, minden karaktert szó szerint értelmez.
Hogyan kell például macskaköröm (”) között akkor $ jelet kiíratni?
PS C:\> "Ez most itt egy `$jel"
Ez most itt egy $jel
Itt jön jól az Escape karakter, ami hatástalanítja a $ alaphelyzet szerinti hatását.
Vigyázat, a $ jel hatása macskakörmök között csak az első szóelválasztó karakterig érvényes! Azaz nem működik így egy adott szöveg hossztulajdonságának kiíratása:
PS C:\> $szó = "ablak"
PS C:\> "Az ablak szó $szó.Length karakter hosszú."
Az ablak szó ablak.Length karakter hosszú.
Hogyan lehet az egész kifejezést kiértékeltetni a macskakörmök között?
PS C:\> "Az ablak szó $($szó.Length) karakter hosszú."
Az ablak szó 5 karakter hosszú.
Azaz a problematikus részt bezárójelezzük, és felhívjuk a PowerShell figyelmét, hogy a változóknál megszokott kiértékelés szerint járjon el ez egész zárójeles kifejezés esetében, ezért elé teszünk még egy $ jelet.
Többsoros szöveget is egyszerűen be tudunk írni:
PS C:\> $hosszú = "1. sor
>> 2. sor
>> 3. sor"
>>
PS C:\> $hosszú
1. sor
2. sor
3. sor
Egyszerűen Entert nyomunk a sortörésnél. A parancssor értelmező beindul és észreveszi, hogy egy idézőjel után vagyunk, így átvált egy alpromptra és várja a szöveget a következő idézőjelig.
Ha kombináljuk az idézőjeleket egész érdekes eredményre is juthatunk:
[8] PS C:\> $szöveg = "valami"
[9] PS C:\> "ide ágyazom be a szöveget: '$szöveg'"
ide ágyazom be a szöveget: 'valami'
Azaz a [9]-es sorban idézőjelek közötti aposztrófot alkalmaztam, ennek ellenére a változó kiértékelődött az aposztrófok között.