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