Konsola pod Windowsem

Od dłuższego czasu prawie codziennie mam styczność z Windowsowym cmd.exe. To, jak domyślna konsola Windowsa wygląda i jakie utrudnienia stwarza na każdym kroku pracy z nią, najlepiej świadczy o bylejakości niektórych rozwiązań Microsoftu.

Na całe szczęście, Microsoft zauważył to niedociągnięcie i postanowił opracować nowy shell, dający dużo większe możliwości piasnia skryptów, niż pliki *.bat i dający dużo większą swobodę, niż archaicznie podobne do DOSa cmd.exe. Od premiery Windows PowerShell, o którym mowa, minęło już całkiem sporo czasu (wcześniej projekt miał nazwę kodową Monad). W WPS dostajemy do ręki język skryptowy zbliżony do C# oraz możliwość z korzystania z dużej ilości klas .NET. Można w łatwy sposób tworzyć profile, aliasy (nareszcie ls pod Windowsem i to domyślnie!) funkcje i pewnie wiele innych ciekawych rzeczy, o których jeszcze mi nic nie wiadomo. Jednym słowem cud, miód i orzeszki :)

Żeby nie być gołosłownym, zaprezentuje małą próbkę możliwości PowerShella, używając kodu znalezionego w artykule na WSS.pl, zatytułowanym Wstęp do PowerShell. Najpierw stworzymy sobie instancję klasy WebClient, pochodzącej z frameworku .NET:

PS E:\> $webClient = new-object System.Net.WebClient

Teraz za pomocą utworzonego obiektu, pobierzemy RSS tego bloga:

PS E:\> $rssData = $webClient.DownloadString("http://www.cudi.pl/feed/")

W tym momencie, możemy już wklepać $rssData i zobaczyć źródła feedu, ale nie psujmy sobie zabawy. Wrzucamy kod XML do obiektu XmlDocument:

PS E:\> $xmlDoc = new-object System.Xml.XmlDocument
PS E:\> $xmlDoc.LoadXML($rssData)

I na koniec, korzystając z DOM i komendy format-table, wyświetlimy tytuły wszystkich wpisów, znajdujących się w feedzie:

PS E:\> $xmlDoc.getElementsByTagName("item") | format-table title

W 5 linijkach, bez korzystania z niestandardowych bibliotek, udało się wykonać całkiem złożone zadanie. Programiści PHP pewnie poczuli się swojo, widząc dolary jako pierwszy znak w nazwie zmiennych :)

Ale sam PowerShell jeszcze mi nie wystarcza. W dalszym ciągu, nawet po ostrym tuningu, są kłopoty z kopiowaniem i wklejaniem tekstu z i do konsoli, zmiana rozmiaru jest niewygodna, brakuje zakładek itd. I tu z pomocą przychodzi programik Console, czyli okienkowa nakładka na cmd.exe. Programik jest mały, szybki i na licencji GPL, a na dodatek pozwala na ustawienie sobie innego shella niż cmd.exe. Oczywiście odrazu został on zastąpiony Windows PowerShellem. Wpis zakończę screenshotem prezentującym zarówno WPS jak i Console w akcji:

Console z Windows Power Shell w akcji

  1. Adi mówi:

    Ciekawe narzędzie: http://www.powershellide.com/ – IDE dla PowerShell’a

  2. bela mówi:

    A działa to cudo pod XP?

  3. Cudi mówi:

    Jak widać na załączonym obrazku, działa. To jest pisane z myślą o Viście, ale powinno ruszyć na każdym systemie MS dającym sobie radę z .NET.

  4. Vee mówi:

    Hmm, czemu u mnie tak zamula?

    Jak sobie zrobie na tym katalogu v1.0 komende “ls” i to samo na starym cmd.exe to różnica jest przerażająca!
    Też tak masz?

  5. Cudi mówi:

    Chodzi zauważalnie wolniej, ale nie aż tak, by praca stawała się niewygodna. Dla samego ls mogę poświęcić ten czas ;)

  6. Limak mówi:

    zamula moze dlatego ze to nie jest jeszcze finalna wersja. Dopiero nadchodzi RC2 ( wss.pl/NewsList/1,8019.aspx )

  7. Śliczna rzecz, nie powiem, trzeba się pobawić ;) . Jest do jakiś RAD obsługujący to może?

  1. There are no trackbacks for this post yet.