Čo ma zaujalo - PowerShell

Publikoval Michal Kočí dňa 8.6.2006 o 01:37 v kategórii PowerShell

Keďže som konečne po štátniciach, nastal čas aby som rozširoval svoje obzory a dnes som sa pustil do prvého zaujímavého produktu na ktorý som dlhšie nemal čas, i keď som sa mu už na zúbky veľmi zbežne pozeral. PowerShell, predtým Monad Shell, je nový Shell pre Windows, zatiaľ len v Beta verzii. Tento krátky príspevok sa Vás bude snažiť aspoň trocha presvedčiť, že za stiahnutie a vyskúšanie rozhodne stojí.

V PowerShelly (PS) ide všetko ozaj tak nejak jednoducho a ľahko. Ak ste zvyknutý si substituovať disky (príkaz subst v starom dobrom Cmd Shelly), toto sa dá aj v PS, bohužial sa substovanie neodrazí v celom systéme, ale iba v danej inštancii Shellu. Zato však nie ste obmedzený iba na substitúciu diskov, ale môžete si substituovať aj prístup do registrov. Navyše, názov nového "drive-u" nemusí byť jediné písmeno, ale môže to byť celé slovo či jeho skratka. Namapovanie adresára .Net Frameworku pod názvom nwf je takto jednoduché:

new-Psdrive -Name nfw -PSProvider FileSystem `
-Root "c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\"

Ak pred spustením CmdLet-u (CommandLet-u) chcete vedieť čo sa vykoná, môžete použiť parameter WhatIf, ktorý zabezpečí, že sa CmdLet nevykoná ale iba vypíše čo by vykonal. Napríklad pred mazaním súborov spustite CmdLet s uvedeným parametrom:

Remove-Item *.txt -WhatIf

a zobrazí sa Vám textový popis akcií ktoré sa vykonajú ak bude príkaz pustený "naostro":

What if: Performing operation "Remove File" on Target "C:\003.txt".
What if: Performing operation "Remove File" on Target "C:\graph.txt".

V PS je možné vytvárať inštancie COM komponentov. Keďže ma lepší príklad nenapadol, uvádzam ten ktorý je všeobecne zobrazovaný aj v popise PS - vytvorenie inštancie Internet Explorera, načítanie stránky a zobrazenie okna aplikácie:

$ie = new-object -com internetexplorer.application
$ie.navigate2("http://blog.michalkoci.com/")
$ie.visible = $true

V PS sa pracuje s objektmi a týmto je možné pridávať nové členy. Príklady a krátky popis si môžete pozrieť v Jáchymkovom blogu v príspevkoch Dynamicke pridavani memberu a Deklarativni pridavani memberu.

A keďže sa v PS pracuje s objektami, je možné volať ich metódy. Tak môžete nad objektom typu ServiceController ziskaným CmdLet-om Get-Service zavolať metódu Stop a tak danú službu zastaviť. Ak neviete akého typu je daný objekt, môžete typ zistiť zavolaním metódy GetType:

$rs = Get-Service ReportServer
$rs.GetType().Name
$rs.Stop()

Volať je možné aj statické metódy a pristupovať k satickým členom. Ak chcete zistiť aktuálny dátum a čas, môžete použiť CmdLet Get-Date alebo tento priamo zistiť prečítaním statickej vlastnosti Now triedy DateTime:

[DateTime]::Now

To bolo len zopár pikošiek, PowerShell je ozaj silný nástroj a za vyskúšanie rozhodne stojí. Ak si ho chcete vyskúšať tak si stiahnite:

Ak Vás PS zaujme isto zhliadnite nasledujúce weby a príspevky, ktoré sa PS venujú:

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.