System z automatu

Kto klika dwa razy, klika o raz za dużo. W artykule opisujemy, jak przy użyciu prostych środków zautomatyzować rutynowe zadania w Windows, które niepotrzebnie pochłaniają mnóstwo cennego czasu.

Komputery mają ułatwiać pracę i samodzielnie wykonywać jak najwięcej uciążliwych, rutynowych zadań. Jeśli więc poobserwujesz sam siebie przy codziennej pracy i stwierdzisz, że stale wykonujesz te same czynności, z pewnością da się coś poprawić. Warto się wówczas zastanowić, czy tego lub innego zadania nie można zlecić komputerowi, aby realizował je automatycznie, bez twojego udziału. Nawet jeśli okaże się to niemożliwe, zapewne są prostsze, szybsze i/lub wygodniejsze sposoby osiągnięcia tego samego celu.

Nie ma co się łudzić – początkowo wiąże się to z dodatkowym nakładem pracy. Musisz wymyślić specjalne rozwiązania swoich indywidualnych problemów. Zapewne konieczne okaże się ponadto zrezygnowanie ze stosowanych dotychczas, utartych metod, co nie każdemu przychodzi łatwo. Jednak automatyzowanie schematycznie wykonywanych zadań przynosi niewymierne korzyści. Pozwala zaoszczędzić sporo czasu, a ponadto zredukować liczbę popełnianych przez ciebie błędów. Nasz artykuł informuje, jakie możliwości automatyzowania rutynowych zadań oferuje sam Windows, a jakie efekty można uzyskać, stosując zewnętrzne oprogramowanie.

Pliki wsadowe ułatwiają korzystanie z poleceniami interpretera Cmd. Wartości złożonych argumentów można przechowywać w zmiennych. Dzięki temu skrypty są bardziej przejrzyste.

Pliki wsadowe ułatwiają korzystanie z poleceniami interpretera Cmd. Wartości złożonych argumentów można przechowywać w zmiennych. Dzięki temu skrypty są bardziej przejrzyste.

1. Wykonywanie sekwencji poleceń przez pliki wsadowe

Posługiwanie się skryptami w postaci plików wsadowych to jedna z najstarszych metod automatyzowania zadań w środowisku Windows. Są to proste pliki tekstowe opatrzone rozszerzeniem .bat lub .cmd, przetwarzane przez procesor poleceń w konsoli tekstowej. W Windows XP i nowszych edycjach systemu procesor ten to plik CMD.EXE. Pliki wsadowe można tworzyć i modyfikować w dowolnym edytorze tekstowym – choćby w Notatniku, który wchodzi w skład systemu (menu Start | Wszystkie programy | Akcesoria | Notatnik). Jednak znacznie wygodniej robi się to za pomocą specjalnego edytora, np. bezpłatnego Notepada++, który jest dostępny w wersji instalacyjnej, a także przenośnej, niewymagającej instalowania (wystarczy rozpakować zawartość archiwum ZIP).

W plikach wsadowych można umieszczać polecenia, które w przeciwnym razie trzeba byłoby wprowadzać ręcznie w konsoli tekstowej (wierszu polecenia). Okazuje się to praktyczne przede wszystkim wtedy, gdy trzeba uruchomiać kilka programów jeden po drugim, a na dodatek każdy z nich wymaga podawania złożonych parametrów. Poniżej zamieszczamy dwa przydatne przykłady.

Mapowanie lub odłączanie dysku sieciowego. Pewne połączenie z dyskiem sieciowym jest ci potrzebne tylko od czasu do czasu, lecz mimo to chcesz przydzielić literę napędu zasobom udostępnionym w sieci lokalnej. Aby wykonać to w konwencjonalny sposób, musisz przywołać menu Narzędzia | Mapuj dysk sieciowy w oknie Eksploratora. Znacznie prościej zrobisz to za pomocą konsoli tekstowej. Wystarczy ją otworzyć, naciskając klawisze [Windows R] i wpisując polecenie cmd, po czym wprowadzić polecenie net use litera_napędu udostępnione_zasoby. Natomiast poleceniem net use litera_napędu /delete odłączysz dysk sieciowy, usuwając skojarzenie.

Większą wygodę zapewnia nasz skrypt DyskSieciowy.bat, który przedstawiamy na ilustracji. Najpierw sprawdza instrukcją warunkową if exist %DYSK%, czy pod daną literą napędu jest już zmapowany jakiś dysk. %DYSK% to zmienna, której jest przyporządkowana litera napędu. Przypisanie to realizuje instrukcja set DYSK=N:. Jeżeli jest w systemie przydział dysku o nazwie N:, skrypt przechodzi do znacznika :delete, po czym odłącza dysk poleceniem net use %DYSK% /delete. W przeciwnym razie zasoby udostępnione na dysku sieciowym zostaną zmapowane i figurują w systemie jako oddzielny dysk o podanej literze. Cechą szczególną opisanego rozwiązania jest to, że w razie potrzeby możesz przekazać w parametrach przywołania dane wymagane do uzyskania dostępu do dysku sieciowego, a więc nazwę użytkownika (login) i hasło. Definicje stosownych zmiennych znajdują się na początku pliku wsadowego, w wierszach set USER i set PWD. Zmień je zależnie od własnych potrzeb. Oprócz tego musisz podać ścieżkę dostępu do zasobów na swoim dysku sieciowym. Wpisz ją w wierszu set ZASOBY.

Przełączanie domyślnego urządzenia audio. Słuchając muzyki ze swojego komputera, używasz podłączonych do niego głośników, natomiast do gier stosujesz słuchawki włączone do innego gniazda wyjściowego audio. Jednak przełączanie między tymi dwoma urządzeniami wymaga sporego nakładu pracy. Najpierw trzeba kliknąć prawym przyciskiem myszy ikonę głośnika na pasku zadań, a potem wskazać polecenie Urządzenia do odtwarzania. Dopiero teraz można wskazać żądane urządzenie audio.

Mając do dyspozycji odpowiedni plik wsadowy, możesz uzyskać ten sam efekt dwukrotnym kliknięciem myszy. Oprócz skryptu potrzebne jest jeszcze narzędzie SSD – Set Sound Device. Wspomniany plik wsadowy znajdziesz wraz z tym narzędziem w pakiecie SoundSwitcher pod tym adresem. Rozpakuj archiwum do dowolnego folderu na dysku twardym i uruchom plik SSD.exe. Narzędzie wyświetli listę dostępnych urządzeń do odtwarzania dźwięku. Ustal, których z nich zamierzasz używać. Pierwsze urządzenie jest opatrzone numerem 1, drugie numerem 2 itd. Następnie otwórz plik wsadowy Audioswitch.bat w dowolnym edytorze tekstowym. Na końcu wierszy set dev1= i set dev2= umieść ustalone uprzednio numery urządzeń, po czym zapisz plik .bat. Klikając dwukrotnie przygotowany w ten sposób plik wsadowy, będziesz się przełączać między obydwoma wybranymi urządzeniami do odtwarzania dźwięku.

Przyglądając się dokładniej opisanemu skryptowi, zauważysz pewną osobliwość. Już na samym początku tworzy plik tekstowy Device.txt za pomocą polecenia echo %dev1% >> device.txt. W pliku tym zapisuje bieżącą wartość zmiennej %dev1%, a więc np. 1. Przy każdym kolejnym przywołaniu skrypt zastępuje treść pliku Device.txt wartością przeciwstawnej zmiennej, aby umożliwić przełączanie się między urządzeniami odtwarzającymi.

Oprócz powłoki PowerShell jest w Windows środowisko deweloperskie Windows PowerShell ISE. Za jego pomocą możesz pisać i edytować skrypty, a także wykonywać polecenia PowerShella bezpośrednio z wbudowanej konsoli.

Oprócz powłoki PowerShell jest w Windows środowisko deweloperskie Windows PowerShell ISE. Za jego pomocą możesz pisać i edytować skrypty, a także wykonywać polecenia PowerShella bezpośrednio z wbudowanej konsoli.

2. Powłoka PowerShell daje większe możliwości niż pliki wsadowe

Już w systemie Windows Vista wprowadzono powłokę PowerShell jako stały, wewnętrzny składnik systemu, a zarazem alternatywę skryptowego przetwarzania poleceń przez interpreter Cmd. W Windows 8 powłoka ta nosi numer 3.0. Użytkownicy Windows 7 z zainstalowanym dodatkiem Service Pack 1 mogą zaktualizować swoją powłokę PowerShell do wersji 3.0. Interpreter ten jest dostępny w bezpłatnym pakiecie Windows Management Framework 3.0. Do 32-bitowej wersji systemu Windows trzeba pobrać plik Windows6.1-KB2506143-x86.msu, do 64-bitowej zaś plik Windows6.1-KB2506143-x64.msu. Przykładowe zastosowania opisane poniżej wymagają powłoki PowerShell w wersji 3.0.

Mocną stroną interpretera PowerShell jest bogaty zbiór predefiniowanych poleceń, które ułatwiają skryptowe wykonywanie zadań administracyjnych w systemie. Oprócz tego można rozszerzać powłokę o nowe moduły, a w ten sposób przysposobić ją do bardzo wielu zastosowań. Ponadto jest możliwe osadzanie kodu w językach programowania .NET (takich jak np. C) w skryptach PowerShell.

Czynności przygotowawcze. Ze względów bezpieczeństwa konsola PowerShell jest skonfigurowana tak, że uniemożliwia wykonywanie skryptów. Aby to zmienić, wyszukaj w menu Start | Akcesoria program Windows PowerShell ISE (ISE oznacza Integrated Scripting Environment) i uruchom go. W oknie, które pojawi się na ekranie, możesz tworzyć i wykonywać skrypty. W dolnej części PowerShell ISE wyświetla interaktywną konsolę poleceń. Wprowadź w niej następującą sekwencję:

Set-ExecutionPolicy RemoteSigned -scope CurrentUser

i potwierdź klawiszem [Enter]. W ten sposób zezwolisz na wykonywanie skryptów przez bieżącego użytkownika.

W dalszej kolejności utwórz podfolder WindowsPowerShell w folderze Moje dokumenty. Możesz to zrobić bezpośrednio w oknie konsoli PowerShell, wpisując polecenie:

mkdir env:USERPROFILE\Documents\WindowsPowerShell

Rozpakuj do tego folderu przykładowe skrypty spod tego adresu. Następnie uruchom raz jeszcze konsolę PowerShell ISE. Funkcje zawarte w nowych skryptach zostaną wczytane automatycznie do środowiska PowerShell, gdy otworzysz plik Profile.ps1.

Wysyłanie wiadomości pocztowych przez konsolę PowerShell. Niekiedy trzeba regularnie wysyłać wiadomości pocztowych zawierające określone informacje do stałego grona odbiorców. Możesz zautomatyzować tę czynność, korzystając ze skryptu Send-Mail.ps1. Otwórz skrypt przez menu File | Open$ w konsoli PowerShell ISE. W sekcji konfiguracyjnej skryptu trzeba podać dane swojego serwera SMTP. Skrypt został wstępnie skonfigurowany do obsługi skrzynki Gmail poprzez szyfrowane połączenie SSL. Można go jednak użyć w połączeniu z dowolnym serwerem pocztowym.

Skrypt wysyła e-maile pod wszystkie adresy zapisane w pliku Empf.txt. Aby działał poprawnie, w każdym wierszu tego pliku powinien być tylko jeden adres pocztowy. Za treść wiadomości służy zawartość pliku SubjBody.txt. Pierwszy wiersz tego pliku skrypt wstawia w polu tematu, pozostały tekst umieszcza zaś w głównej części wiadomości.


Zobacz również