Skip to Content

IT nieuczesane.
archive

> Monthly Archives: Styczeń 2016

wrażliwość na wielkość addendum

linkrobiąc w toalecie to, co się normalnie tam robi, czyli czytając RSSy, okazało się, że całkiem niedawno na blogu Scripting Guy również poruszany był temat Case Sensivity w PowerShell. jest tam jeszcze sporo ‚wyjątków’, o których warto sobie poczytać.

eN.

wrażliwość na wielkość

BnSOffTopic

ogólnie staram się szanować nasz piękny język i tępić ‚kontenty’ czy ‚autentykację’ [choć pewnie lada moment zostaną zapisane jako oficjalnie poprawne]. niemniej tłumaczenia niektórych fraz brzmią … zabiera trochę czasu, żeby się domyślić /: to na tyle jeśli w kwestii filozofii porannej, czas na gimnastykę z innego języka.

PS case sensivity

PS jest miły i przyjemny. stara się użytkownika we wszystkim wyręczyć, pomóc mu, wybaczyć błędy. czasem aż do przesady. ale jak każda istota, ma swoje odchyły, aberracje. tak też jest w przypadq traktowania wielkości znaków – ogólnie wszystko, dla ułatwienia, jest z automatu niewrażliwe na wielkości znaków. czyli mówiąc potocznie, jest baj difolt kejs-insensitive. są jednak wyjątki [bez których reguła nie mogłaby być pełna]:

  1. najbardziej zdradliwe, bo też i często używane, to ‚-unique’. z jednej strony logiczne, że unikalne ma być unikalne… z drugiej, skoro PS jest nieczuły na stan [prawda,  że też ładne tłumaczenie?], to skąd nagle taka zmiana…

jak widać, każdy =))o- jest unikalny. rozsądnie. tak samo zresztą zachowuje się polecenie ‚get-unique’, a mogłoby się wyróżniać choćby dodatkowym parametrem ‚-CI’. ale się nie wyróżnia.

na każdego jest oczywiście metoda, tzw. walec. takim walcem w PS jest sortowanie, które również posiada parametr ‚-unique’, ale ten unique jest bardziej unique niż inne, bo jest właśnie nieczuły na wielkość:

[to nie jest prawidłowy =))o- ]

  1. drugim przykładem, zapewne bardziej [nomen omen] unikalnym, są wyrażenia regularne. oczywiście i tutaj są dwie wariacje – CI i CS, więc trzeba uważać. jeśli używa się zwykłych reguł ‚match’ lub ‚replace’, zachowuje się standardowo [czyli nie zwraca uwagi na wielkość znaków]:

jeśli jednak zdefiniuje się wyrrega [tak pewnie nazywał by się w polskiej wersji Logo. tłumaczone języki to  sqcha] … regexa, to zachowuje się inaczej [czyli CS]:

zmusić regexa do niewrażliwości można na dwa sposoby – albo definiując dodatkową opcję podczas deklaracji, lub modyfiqjąc samą definicję wyrażenia. pierwsza wersja może przestraszyć swoją monstrualnością, ale jak się w kodzie definiuje wiele regexów to warto raz zdefiniować i potem używać:

opcje są wartością binarną, której każdy bit ma inne znaczenie. stąd binarny OR modyfiqjący jej wartość. jeśli wyrażeń regularnych w kodzie jest niewiele, bardziej opłaca się CI ustawić w jego definicji:

PostScriptum

znajomość sztuczek i tricków języka jest bardzo przydatna. można zaoszczędzić wiele linii kodu, a czasem bardzo wiele czasu, zmarnowanego na wyważanie otwartych okien. polecam również zajrzeć na powershellpl.net, ponieważ Bartek się w końcu uaktywnił.

eN.

 

 

hurtowe pobranie mediów z doqmentów office

dziś ponownie goszczę na blogu Adriana, który zasila WF systemowymi tips’n’tricks (:

.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.

Jak szybko „wyciągnąć” wszystkie zdjęcia i video z pliku Powerpoint , Word lub Excel?

Niejednokrotnie spotkałem się z prośbą lub pytaniem znajomych o szybki sposób na hurtowy eksport obiektów z plików pakietu Office. Oczywiście, można to zrobić ręcznie, eksportując każde ze zdjęć, ale nie o to przecież chodzi.

Otóż jest pewien sposób na dość szybkie wydobycie z naszych prezentacji lub dokumentów wszystkich mediów – zdjęć, dźwięków lub Video – w formie oddzielnych plików.

Jak to zrobić ?

Wystarczy zmienić rozszerzenie pliku np. powerpoint’a z PPTx na zip:

media02media01


po dokonaniu zmiany wystarczy dwukrotnie kliknąć na archiwum i w strukturze folderów wyszukać folder Media w którym to będą pliki których szukamy.

media03

Adrian Szwejkowski

.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.

eN.

ReadKey()

Windows_PowerShell_iconniektóre skrypty powinny pozwolić na dodanie wyboru akcji w trakcie przetwarzania – typu ‚wykonanie akcji A, naciśnij ‚A’, akcja B, naciśnij ‚B’, wyjdź ‚W”… ogólnie należy unikać takiego kodu ale czasem chcemy zrobić skrypt ‚miły’, user-friendly. metod jest kilka, a im bardziej user-friendly tym mniej uniwersalna.

źle

najładniejszą będzie oczywiście dodanie formatki GUI. formatka GUI wymaga bibliotek graficznych. znaleźć można różne wynalazki, z których najśmieszniejszy to korzystanie z WSH O_o’  [ nieznoszę takich frankensteinów]. .NET zawiera oczywiście odpowiednie klasy, można więc skorzystać z klasy System.Windows.Forms.Messagebox – tutaj praktyczny przykład. podstawowe wady tej metody to: wymaga bibliotek Forms, czyli nie zadziała na wersjach Core, oraz nie zadziała w sesjach zdalnych (remoting).

lepiej

inną metodą jest zwykły ReadKey. trzeba niemniej uważać na sposób jego wywołania. najprostsza metoda wywali się w sesji zdalnej:

można zatem użyć metody z obiektu host:

ta jednak metoda wymaga, aby host ją obsługiwał, czyli nie zadziała np. w ISE.

najlepiej

najbardziej natywny ‚PowerShell’ to wykorzystanie metody PromptForChoice obiektu Host.UI, z którego korzystają commandlety. Dzięki temu zachowany jest spójny ‚user-experience’, a metoda zadziała w sesji zdalnej, ISE, konsoli itp, itd [w ISE wyświetli okienko (: ]:

[kod z Technet]

eN.