neděle 21. března 2010

PowerShell ISE

Novinkou v PowerShellu v2 je PowerShell ISE (Integrated Scripting Environment). Toto prostředí slouží jako konzole a script editor v jednom. Dnes se na něj ve zkratce podíváme. Po installaci je ISE dostupné (spolu s konzolí) v příslušenství nebo jej můžete spustit příkazem powershell_ise.exe.

Já jsem se zhruba před dvěma měsíci rozhodl, že jej na na týden budu používat místo konzole a PowerGUI script editoru a od té doby v něm pracuji většinu času. Pojďme si tedy ISE projít. Skládá se ze tří částí: editoru, konzole a výtupního panelu. Rozložení si oproti standardnímu můžete upravit, takže by se vám nemělo stát, že nenajdete to, co se hodí vám. Možnosti nastavení jsou dostupné pod položkou menu View.

image

Na obrázku vidíte rozvžení, které vyhovuje mě. Většina položek je dostupná přes klávesové zkratky, takže pokud se potřebuji přepnout do zobrazení pouze script editoru, můžu použít Ctrl+3 a zpět se dostanu pomocí Ctrl+1. V případě rozložení, které je ukázáno na obrázku, se lze zárovň rychle přsunout kurzorem mezi editorem (Ctrl+I) a konzoli (Ctrl+D).

Konzole i editor podporují doplňování pomocí klávesy tabulátor a oproti standardní konzoli mají výhodu v tom, že v případě doplňování např. parametru předchozího cmdletu, nemažou znaky za kurzorem. Zkuste si v klasické konzoli a ISE tento příkaz:


Get-Process | Select-Object Name | Format-Table –Autosize

nyní se vraťte kurzorem k cmdletu Select-Object a zkuste k němu pomocí tabulátoru doplnit parametr First.


Get-Process | Select-Object Name -f<Tab> | Format-Table –Autosize


V ISE se vám parametr správně dohledá a v konzoli budete zbytek řádky dopisovat ručně. Celé ISE podporuje standardní práci se schránkou (tedy nikoli tak, jak je to klasické konzoli – pravé tlačítko myši pro vložit ze schránky), vyhledávání ve skriptu, či zvětšování/zmenšování písma.

ISE umožňuje také otevřít další prostředí PowerShellu v nové záložce (Ctrl+T). Otevře se vám nová instance, takže například nové proměnné v této instanci vytvořené nejsou dostupné v jiné záložce (instanci). Dobrou možností je otevření nové instance ze vzdáleného počítače (Ctrl+Shift+R). Je to vlastně obdoba cmdletu Enter-PSSession.

Script editor obsahuje základní vlastnosti, které od editoru vyžadujeme (administrátoři, vývojáři mají určitě nároky vyšší) – zvýrazňování syntaxe, vyhledávání, ale hlavně možnost debugování, včetně nastavování breakpointů. Všechny volby jsou dostupné pod menu Debug.

image

Pro základní krokování skriptu je tato možnost dostačující, ale v případě větších požadavků budete muset stejně použít dostupné cmdlety nebo jiný editor.

Jak jsem řekl na začátku, dnes trávím většinu času v ISE a i když má svá omezení, rozhodně stojí za to, o něm alespoň vědět. Příště si povíme něco o objektovém modelu ISE a některých dostupných rozšířeních.

2 komentáře:

Arnošt řekl(a)...

Proč v PS normálně mám SQLSERVER drive a v PowerShell ISE není?

makovec řekl(a)...

Předpokládám, že nemáte přidaný snapin SqlServerProviderSnapin100. Se SQL Serverem jsou "dodávány" dva snap-iny, tím druhým je SqlServerCmdletSnapin100 (obsahuje cmdlety Invoke-PolicyEvaluation a Invoke-Sqlcmd).

Přidejte si řádku: 'Add-PSSnapin SqlServerProviderSnapin100' do profilu a provider (tedy i SQLSERVER drive) budete moci používat i v ISE).