A A A

Szydełkowanie skryptu

PC Format 10/2007
Skrypt ułatwia automatyzację operacji wykonywanych w systemie. Automatyzacja to nie tylko łączenie kilku czynności w jeden proces, ale także możliwość wielokrotnego wykonywania danej operacji. Chcesz na przykład, by skrypt wykonywał się sam w regularnych odstępach czasu? Wystarczy użyć pętli.

Odczyt wybranych wartości rejestru Windows za pomocą skryptu VBScript, który był omówiony w poprzednich odcinkach kursu, to z pewnością przydatna umiejętność. Wszak w rejestrze przechowywane są niemal wszystkie informacje o każdym aspekcie działania systemu operacyjnego. Niekiedy jednak okazuje się, że jednorazowe wykonanie jakiejś operacji nie wystarcza, trzeba ją wykonać wielokrotnie. I na to jest sposób – wystarczy dodać pętle.

Pętle to konstrukcje umożliwiające wielokrotne wykonanie wybranego fragmentu kodu. W przypadku skryptów w języku VBScript do twojej dyspozycji pozostają następujące konstrukcje:
For Each … Next
For … Next
Do While
Do Until
Kiedy używać danej konstrukcji i dlaczego? Odpowiedzią niech będą konkretne przykłady kodu.

Pętla For Each … Next w praktyce

Przyjrzyj się zamieszczonemu poniżej fragmentowi listingu 1.


Z pewnością zauważyłeś trzy wyodrębnione części skryptu. Sekcja nagłówka (linie od 1 do 5) zawiera znane już z poprzednich odcinków kursu wyrażenia, takie jak m.in. Option Explicit czy deklaracje zmiennych za pomocą Dim.


Kolejny fragment – linia 7 – to sekcja referencyjna, w której, przypomnijmy, przypisujesz zadeklarowanym wcześniej zmiennym odpowiednie wartości. W tym przypadku zmiennej DrivesCollection przyporządkowane zostało zapytanie do systemu o liczbę dysków logicznych za pomocą funkcji GetObject, metody ExecQuery i mechanizmu Windows Management Instrumentation (WMI). Ponieważ jednak na razie zajmujemy się pętlami, a nie funkcjami czy zagadnieniami związanymi z WMI, pozostawiamy tę linię bez dodatkowych wyjaśnień – po prostu ją wpisz.


Ostatnie trzy linie 9–11 to sekcja robocza zawierająca właśnie pętlę For Each … Next. W opisywanym przykładzie wynikiem działania skryptu będzie wyświetlenie liter dysków twardych lub partycji, jakie są zdefiniowane w danym systemie.


Zapewne pamiętasz, że do wyświetlania jakichkolwiek komunikatów służy obiekt WScript i jego metoda Echo. Zauważ, że powyższy skrypt w momencie wykonania wyświetli tyle liter dysków, ile masz w swoim komputerze, mimo że użyłeś przecież tylko jednego obiektu WScript.Echo.


Skąd komputer „wie”, ile liter ma wyświetlić? Oto jak można na „ludzki” język przetłumaczyć trzy ostatnie wiersze skryptu: „Dla każdego obiektu (dysku) odnalezionego w wyniku zapytania systemu poprzez zmienną DrivesCollection wyświetl każdy znaleziony obiekt (literę dysku)”. Zatem dzięki pętli komunikat będzie zawierał tyle liter dysku, ile liter dysków zostało w systemie faktycznie przyporządkowanych dyskom logicznym. Dodatkową zaletą pętli For Each … Next jest to, że możesz przypisać dowolne polecenie każdemu obiektowi znajdującemu się w jakimś zbiorze, nie wiedząc zarazem, ile jest tych obiektów w zbiorze.


W przykładowym skrypcie nie tylko pętla For Each … Next jest nowym elementem. Pomijając wiersz 7, zwróć uwagę na sekcję nagłówka i zawartą w niej, w linii 3, deklarację stałej DriveType. Jak łatwo zauważyć, stała definiowana jest wyrażeniem Const. Ponadto najczęściej od razu definiowanej stałej przypisywana jest określona wartość, która nie ulega zmianie przez cały skrypt. W naszym przykładzie wartość 3 wzięła się stąd, że zawęża pole zapytania skierowanego do mechanizmu WMI tylko do dysków twardych. Więcej informacji o tym, jak odpytywać mechanizm WMI na temat innego typu dysków, w ramce „Jak pytać system...”.


Ocena:
Oceń:
Komentarze (0)

Redakcja nie ponosi odpowiedzialności za treść komentarzy. Komentarze wyświetlane są od najnowszych.
Najnowsze aktualności


Nie zapomnij o haśle!
21 czerwca 2022
Choć mogą się wydawać mało nowoczesne, hasła to nadal nie tylko jeden z najpopularniejszych sposobów zabezpieczania swoich kont, ale także...


Artykuły z wydań

  • 2024
  • 2023
  • 2022
  • 2021
  • 2020
  • 2019
  • 2018
  • 2017
  • 2016
  • 2015
  • 2014
  • 2013
  • 2012
  • 2011
  • 2010
  • 2009
  • 2008
  • 2007
Zawartość aktualnego numeru

aktualny numer powiększ okładkę Wybrane artykuły z PC Format 1/2022
Przejdź do innych artykułów
płyta powiększ płytę
Załóż konto
Co daje konto w serwisie pcformat.pl?

Po założeniu konta otrzymujesz możliwość oceniania materiałów, uczestnictwa w życiu forum oraz komentowania artykułów i aktualności przy użyciu indywidualnego identyfikatora.

Załóż konto