Monad Shell - revolúcia v skriptovaní?

Publikoval Michal Kočí dňa 5.10.2005 o 02:04 v kategórii PowerShell

Monad Shell. Nový shell pre Windows, ktorý svojou silou úplne predbieha stávajúci Windows CMD Shell...

Monad Shell je postavený na inom princípe ako CMD Shell. Kým CMD Shell a kopec ďaľších shell-ov (vrátane linuxových ako napríklad Bash apod.) nie je postavený na výmene textov medzi procesmi (príkazmi), ale je postavený na práci s objektmi.

Monad neobsahuje príkazy, ale CommandLet-y (CommandLet, CmdLet). CmdLet nie je žiadny Exe súbor, ale inštancia .Net triedy, takže ak si potrebujete funkcionalitu Monad Shellu rozšíriť, nemal by to byť pre Vás veľký problém. Monad Shell však poskytuje veľa už pripravených CmdLet-ov (napríklad Get-Process, Set-Location, Get-Drive apod).

Medzi hlavné vlastnosti Monad Shell-u patria:

  • podpora presmerovania výstupu (presmerovanie výstupu jedného CmdLet-u druhému CmdLet-u)
  • podpora premenných (globálne, lokálne, súkromné, ...)
  • možnosť volania metód objektov
  • možnosť tvorby vlastných funkcií
  • podpora práce s poliami (napríklad pole čísiel)
  • podpora práce so slovníkmi (dvojica kľúc-hodnota)
  • podpora podmienkových výrazov - if, switch
  • podpora cyklov - for, foreach, while
A mnoho ďaľšieho...

Jeden príklad za všetky. Zabitie všetkých procesov, ktoré majú v názve "cmd":

Get-Process | where { $_.ProcessName -eq "cmd" } | Select-Object Id | Stop-Process

Najprv zistíte všetky bežiace procesy, vyfiltruje z nich iba tie, ktoré majú v názve "cmd", z vlastností objektov si vyberiete iba identifikátor procesu a ten pošlete CmdLet-u Stop-Process, ktorý procesy s danými identifikátormi zastaví.

Ak som Vás navnadil, stiahite si betu 2 Monad Shellu a potom aj dokumentáciu.

Mohlo by ťa tiež zaujímať

Páčil sa ti príspevok?

Zdieľaj príspevok alebo si ho odlož na neskôr

Sleduj ma

Ak nechceš premeškať príspevky ako je tento, sleduj ma na Twitteri, alebo ak máš RSS čítačku, môžeš sledovať môj RSS kanál.