Historia… inaczej.

•8 lutego, 2017 • Dodaj komentarz

history_bookOd jakiegoś czasu noszę się z zamiarem napisania o grupie modułów, których autorem jest Kirk Munro – jeden z niewielu ludzi, którzy tytuł PowerShell MVP noszą tak długo, że trudno oprzeć się wrażeniu, że z tytułem tym się urodzili. Kirk to dynamit, człowiek pełen pomysłów a gdy zaczyna pomysły te wprowadzać w życie… Dziś o module, który zmienia zasadniczo sposób pracy z historią poleceń.

Moduł HistoryPx przeznaczony jest dla wszystkich wersji PowerShella, począwszy od wersji trzeciej. Zmienia on w sposób zasadniczy to, jak zachowuje się nasza konsola i pozwala nam cofać się do przeszłości. Zanim jednak przyjrzymy się temu jak świat wygląda po zainstalowaniu i zaimportowaniu tego modułu, pomówmy sobie chwilę o tych wszystkich sytuacjach, gdy czegoś w PowerShellu nam brakowało…

Czytaj dalej ‚Historia… inaczej.’

TabExpansion Plus Plus – rewizyta

•31 października, 2016 • Dodaj komentarz

Minęły przeszło dwa lata od posta, w którym starałem się Wam przybliżyć moduł TabExpansion++. W tak zwanym międzyczasie autor projektu, Jason Shirk, wrócił "do domu" i pracuje ponownie w zespole odpowiedzialnym za PowerShella. Wraz z nim do "rdzenia" powróciły oba jego projekty, o których pisałem na moim blogu: TabExpansion++ oraz PSReadline. O ile jednak PSReadline (pomijając znaczącą rozbudowę i dodanie kolejnych możliwości, oraz zmianę przestrzeni nazw, w której znajdziemy wszelkie metody z modułem związane) nie zmienił się znacznie, o tyle zmian w TabExpansion++ nie brakuje.

Czytaj dalej ‚TabExpansion Plus Plus – rewizyta’

Przedsprzedaż spełnionych marzeń

•27 czerwca, 2016 • 10 Komentarzy

windows-powershell-bibliaGdy przeszło pięć lat temu napisałem pierwszy artykuł na tym blogu, wspomniałem o kilku celach, które pragnąłem osiągnąć. Cele to chyba jednak zbyt mocne słowo. Bardziej marzenia…

Pierwsze z nich, polonizacja PowerShella, nigdy nie doszła do skutku. Choć przyznam, że pokusa by do tego zagadnienia wrócić teraz jest większa niż kiedykolwiek wcześniej: pomoc jest dostępna na GitHubie, więc środki po temu, by przetłumaczyć pomoc na język ojczysty w zasadzie są dostępne. Cóż jednak z tego, skoro czasu zwyczajnie brakuje, by choć zacząć.

Czytaj dalej ‚Przedsprzedaż spełnionych marzeń’

Z innej beczki: aliasy.

•31 Maj, 2016 • Dodaj komentarz

Planowałem już od dłuższego czasu skrobnąć kolejną część cyklu o modułach innych niż skryptowe, ale maj przemknął mi przed oczami: najpierw majowe wakacje dzieciaków połączone z podróżą do Ziemi Ojczystej i zwieńczone komunią chrześniaka, dalej drugie urodziny najmłodszej i komunia najstarszej córci i nim zerknąłem w kalendarz – przyszło powoli żegnać się z tym pięknym miesiącem. Pogoda również nie nastrajała "komputerowo", choć biorąc pod uwagę fakt, że na pisanie czas zwykle znajduję i tak w nocy…

Zamiast więc kolejnej części cyklu słów kilka o tym, na co natknąłem się w zasadzie niedawno, a co może Wam się przydać w trakcie pisania zarówno kompilowanych, jak i skryptowych poleceń.

Czytaj dalej ‚Z innej beczki: aliasy.’

Piszemy sobie moduł: C# (2)

•24 kwietnia, 2016 • Dodaj komentarz

ModulBinarny2Coś nie specjalnie (póki co) udaje mi się dotrzymać obietnicy – pisuję nadal rzadko. Cóż jednak zrobić, gdy doba nie chce się wydłużyć, a ilość rzeczy do zrobienia piętrzy się nieustannie. Dziś jednak w końcu mam chwilkę czasu, wypada więc zamknąć to, co zaczęliśmy jakiś czas temu.

W pierwszej części napisaliśmy banalnie prosty moduł. Przyjrzeliśmy się temu, jak utworzyć odpowiedni projekt, pobrać niezbędne biblioteki i wreszcie – jak przyjrzeć się naszemu modułowi w debuggerze. Dziś przyjrzymy się temu, jak wokół modułu binarnego zbudować pełny moduł: z manifestem, plikami pomocy, formatów i typów.

Czytaj dalej ‚Piszemy sobie moduł: C# (2)’

Piszemy sobie moduł: C# (1)

•16 marca, 2016 • Dodaj komentarz

ModulBinarny_01Pisanie modułów skryptowych w PowerShellu to rzecz trywialna dla każdego, komu zdarzyło się w PowerShellu "popełnić" kilka skryptów. W ostateczności moduł taki możemy utworzyć wrzucając kilka funkcji do pliku z rozszerzeniem psm1. Jeśli mamy skrypty stanowiące swoiste biblioteki funkcji może wręcz wystarczyć zmiana nazwy pliku. Wreszcie – importować w ten sposób można również pliki z rozszerzeniem ps1, nic nie stoi więc na przeszkodzie by zwyczajny skrypt zacząć traktować jako moduł skryptowy. Dlatego właśnie postanowiłem przyjrzeć się dwóm pozostałym opcjom. Na pierwszy ogień idzie moduł binarny. A ponieważ z języków, w jakich można moduł taki napisać, najbliższy memu sercu jest C# – z niego właśnie w trakcie pisania modułu skorzystam.

Czytaj dalej ‚Piszemy sobie moduł: C# (1)’

Wspieramy stronicowanie

•31 stycznia, 2016 • Dodaj komentarz

stronicowanieTworząc polecenia w PowerShellu mamy całą gamę możliwości, dzięki którym nasz skrypt/ funkcja może łudząco przypominać skompilowany cmdlet. Jedną z takich możliwości jest "oflagowanie" polecenia jako wspierającego stronicowanie (SupportsPaging). Oznacza to, że nasze polecenie zyska parametry zbliżone do tych, które oferuje Select-Object. Od dłuższego czasu nosiłem się z zamiarem dania szansy tej funkcjonalności. O tym jak długi był to czasy niech zaświadczy fakt, że możliwość tą dodano w wersji trzeciej PowerShella. I przyznam, że mimo wszystko troszkę mnie opcja ta rozczarowała. Na ile udało mi się zbadać jej możliwości, ręczne dodanie dwóch parametrów, na których mogłoby mi zależeć, może się okazać rozwiązaniem lepszym. Ale najpierw o tym co i jak, czyli gdzie (przynajmniej teoretycznie) opcja ta może nam się przydać.

Czytaj dalej ‚Wspieramy stronicowanie’

Plik, czyli zmienna.

•17 stycznia, 2016 • 1 komentarz

VarZmienne w PowerShellu to dość ciekawy "zwierz". Większość użytkowników spotyka się z nimi w najprostszej postaci: $zmienna. Definiujemy, modyfikujemy, używamy. I tyle. Trzeba jednak wiedzieć, że zmienne to coś więcej niż tylko "worki" na nasze obiekty, do których odnosimy się wykorzystując tę najprostszą notację. W tym artykule postaram się wspomnieć o kilku sprawach związanych ze zmiennymi, które odróżniają zmienne w PowerShellu od zmiennych wykorzystywanych w innych językach programistycznych i skryptowych. Zanim jednak o tym, przyjrzymy się nieco dokładniej temu czym jest a czym nie jest w PowerShellu nazwa zmiennej.

Czytaj dalej ‚Plik, czyli zmienna.’

Noworoczne postanowienia (reaktywacja)

•31 grudnia, 2015 • 3 Komentarze

Z przerażeniem spoglądam dziś na statystyki bloga z ostatniego roku. Jeden post, w dodatku na samym jego początku… Nie taki był plan! Ostatnio zastanawiałem się nad przyczyną tego stanu rzeczy i doszedłem do wniosku, że przyczyna jest jedna: zawsze mierzę w artykuły długie i wyczerpujące temat, często dość obszerny. A przecież wiedza to nie tylko te tomiszcza, bloki wiedzy, ale również drobne wskazówki, ciekawostki i informacje, które zamknąć można w kilku zdaniach. Moje postanowienie noworoczne ich właśnie będzie dotyczyć. Planuję wrzucać coś o wiele częściej, ale w mniejszych porcjach. Wam będzie łatwiej to czytać, mi łatwiej pisać w miarę regularnie i jednocześnie jak sądzę może nawet ciekawiej.

Czytaj dalej ‚Noworoczne postanowienia (reaktywacja)’

PowerShell ISE na sterydach (2.0), część 6

•4 stycznia, 2015 • Dodaj komentarz

ISESteroids2-6

W ostatniej części cyklu o ISESteroids zamierzam skupić się na “wodotryskach”. Oczywiście, człowiek z natury swej lubi rzeczy “ładne” (inna sprawa, że piękno może być rzeczą wysoce subiektywną), więc również “wodotryski” trudno uznać za zbędne ozdobniki. Więcej: część z nich naprawdę ułatwia pracę w ISE i uwypukla istotne dla użytkownika informacje. Nie ma jednak wątpliwości, że część z tych wodotrysków znajdzie się w kategorii: “To super! Zjawiskowe! Tylko… raczej nie będę z tego korzystać, bo…”. Warto jednak wiedzieć, że takie możliwości w ISESteroids drzemią, by móc świadomie z nich nie korzystać. Puszczam oczko

Czytaj dalej ‚PowerShell ISE na sterydach (2.0), część 6’