Függvény a parancsfeldolgozás előnyeinek kihasználására

A parancs-üzemmódot felhasználhatjuk például arra, hogy egyszerűen hozzunk létre sztringtömböket. Merthogy ilyet létrehozni nem túl egyszerű:

[22] PS C:\munka> $stringtömb = egy, kettő, három, négy, öt

The term 'egy' is not recognized as the name of a cmdlet, function, script fil

e, or operable program. Check the spelling of the name, or if a path was inclu

ded, verify that the path is correct and try again.

At line:1 char:18

+ $stringtömb = egy <<<< , kettő, három, négy, öt

    + CategoryInfo          : ObjectNotFound: (egy:String) [], CommandNotFoun

   dException

    + FullyQualifiedErrorId : CommandNotFoundException

Láthatóan ebben a formában nem tudunk sztringtömböt létrehozni, hiszen most a sor eleji $ jel miatt kifejezésmódban voltam, így az egyenlőségjel utáni szöveget megpróbálja kifejezésként értelmezni, ami nem megy.

A megoldás ez lenne:

[23] PS C:\munka> $stringtömb = "egy", "kettő", "három", "négy", "öt"

Ezzel sajnos nagyon sok idézőjelet kellett begépelni, ami elég fárasztó. Hogyan lehetne „átverni” a PowerShellt, hogy automatikusan kezelje ezeket a szövegeket sztringként? Készítsünk egy olyan függvényt, ami paraméterként tudja fogadni a fenti szövegeket és ekkor a parancsfeldolgozás miatt életbe lép az automatikus sztringkonverzió:

[24] PS C:\munka> function str {$args}

[25] PS C:\munka> $stringtömb = str egy, kettő, három, négy, öt

[26] PS C:\munka> $stringtömb

egy

kettő

három

négy

öt

A fenti példában készítettem egy nagyon egyszerű függvényt, ami nem csinál semmit, mit hogy visszaadja átalakítás nélkül a neki adott paramétereket. Mivel a függvény meghívásakor már a PowerShell parancsmódba vált, így nem a függvénynek kell konvertálni, hanem maga a PowerShell ezt elvégzi helyettünk. Sőt! Még a vesszők is elhagyhatók a fenti példából:

[27] PS C:\munka> $stringtömb = str egy kettő három négy öt

[28] PS C:\munka> $stringtömb

egy

kettő

három

négy

öt



Word To HTML Converter