Az egyik legtöbbet használt gyorsbillentyű a TAB-billentyű, amit érdemes kicsit részletesebben is tárgyalni, mivel ez rengeteg fölösleges gépeléstől mentheti meg a lustább (ez határozottan pozitív tulajdonság) szkriptelőket. A PowerShell TAB-billentyűje annyira sokrétűen használható, hogy akár olyan információforrásként is tekinthetünk rá, ami gyorsan, könnyen elérhető és mindig kéznél van.
A TAB használata nem igazi újdonság, nyilván sokan használták a cmd.exe-be épített változatát, de a PowerShellben számos új képességgel is találkozhatunk. Mi a teendő például, ha át akarunk váltani a C:\Users mappára? Természetesen begépelhetjük a teljes parancsot:
PS C:\> Set-Location
"c:\Users"
Nem is olyan sok ez. Akinek mégis, az csak ennyit írjon:
PS C:\> Set-Location
c:\U<tab>
Ha a c: meghajtó gyökerében nincs más ’u’ betűvel kezdődő mappa, akkor készen is vagyunk, a shell kiegészítette a parancsot, még az idézőjeleket is begépelte helyettünk. Ha több mappa is kezdődik ’u’-val akkor sincs nagy baj, a TAB-billentyű szorgalmas nyomkodásával előbb-utóbb eljutunk a megfelelő eredményig. Még ez is túl sok? Próbálkozzunk tovább! A PowerShell nemcsak a mappa és fájlneveket, hanem a cmdletek nevét is kitalálja helyettünk:
PS C:\> Set-L<tab> c:\u<tab>
Mi történik vajon, ha csak ezt gépeljük be:
PS C:\> Set-<tab>
Bizony, a TAB-billentyű nyomkodásával végig lépkedünk az összes Set- parancson, így akkor is könnyen kiválaszthatjuk a megfelelőt, ha a pontos név éppen nem jut eszünkbe. A Shift+TAB-bal vissza tudunk lépni az előző találatra, ha túl gyorsan nyomkodva esetleg tovább léptünk, mint kellett volna.
Mi a helyzet a cmdletek paramétereivel? Gépeljük be a következőt:
PS C:\> Get-ChildItem -<tab>
Talán már nem is meglepő, hogy a lehetséges paraméterek listáján is végig lépkedhetünk, hogy a megfelelőt könnyebben kiválaszthassuk közülük.
A paraméterek megadásával kapcsolatban itt említünk meg egy másik lehetőséget is (bár nem kell hozzá TAB). Egyszerűen annyi a teendőnk, hogy egyáltalán nem adunk meg paramétert, mivel ebben az esetben a parancs indítása előtt a PowerShell szép sorban bekéri a kötelező paramétereket:
PS C:\> New-Alias
Supply values for the following parameters:
Name: ga
Value: Get-Alias
Hamarosan részletesen megismerkedünk a PowerShell változók rejtelmeivel és az objektumok használatával, most csak egy kis előzetes következik a TAB-billentyű kapcsán. Ha a PowerShell munkamenetben saját változókat definiálunk, a TAB ezek nevének kiegészítésére is képes, amint az alábbi példán látható:
PS C:\> $ezegynagyonhosszunevuvaltozo = 1
PS C:\> $ez<tab>
Ügyes! És mi a helyzet a .NET vagy COM-objektumok tulajdonságaival és metódusaival? A TAB-billentyű ebben az esetben is készségesen segít:
PS C:\> $s = "helló"
PS C:\> $s.<tab>
PS C:\> $excel = new-object -comobject excel.application
PS C:\> $excel.<tab>
Aki még arra is kíváncsi, hogy ezt a sok okosságot mi végzi el helyettünk, adja ki a következő parancsot:
PS C:\> $function:tabexpansion
A képernyőn a PowerShell beépített TabExpansion nevű függvényének kódja jelenik meg; ez fut le a TAB-billentyű minden egyes leütésekor. A kód most még talán egy kicsit ijesztőnek tűnhet, de hamarosan mindenki folyékonyan fog olvasni PowerShellül. A kód azonban nemcsak olvasgatásra jó, meg is változtathatjuk azt, sőt akár egy teljesen új, saját függvényt is írhatunk a „gyári” darab helyett (a függvényekről később természetesen még lesz szó).