Swoboda wyboru
Uruchom program Notepad++ 4.22 i wpisz lub wczytaj z krążka plik skrypt-odc4.vbs.
Sekcja nagłówka znajdująca się w liniach od 1 do 10 to znane ci już wyrażenia Option Explicit (wymuszenie deklarowania zmiennych), dwie deklaracje stałych (wyrażenie Const) oraz deklaracje zmiennych (Dim).
Od linii 10 rozpoczyna się sekcja referencyjna, w której zadeklarowanym zmiennym przypisujesz odpowiednie wartości, a także tworzysz niezbędne obiekty. Zwróć uwagę na ścieżki do plików w liniach 11 i 12. Zmodyfikuj je odpowiednio do własnych potrzeb.
W linii 13 tworzysz obiekt systemu plików, który umożliwi otwieranie plików i wykonywanie na nich działań. Linia 14 to utworzenie obiektu odpowiadającego odczytywanemu plikowi wsadowemu, natomiast linia 15 to obiekt, za którego pomocą powstanie plik wynikowy.
W linii 16 zaczyna się sekcja robocza – główny „silnik” skryptu. Jeżeli śledziłeś poprzednie odcinki naszego kursu, z pewnością rozpoznasz konstrukcję pętli Do…While. W tym przypadku pętla będzie wykonywana tak długo, dopóki skrypt, odczytując plik wsadowy, nie dotrze do jego końca.
Linie od 19 do 21 zawierają konstrukcję If…Then. Warunkiem uaktywniającym akcję zawartą w tej konstrukcji (a jest nią zapis linii komentarza do pliku wynikowego), jest fakt odnalezienia w danej linii wyrażenia REM. W jaki sposób skrypt odnajduje tę linię? Odpowiada za to wartość zmiennej intIsREM, której przypisana jest funkcja InStr (linia 18).
Zauważ, że po zapisaniu odnalezionej linii komentarza do pliku wynikowego i wyjściu z instrukcji warunkowej skrypt wraca do pętli i działanie się powtarza – tak długo, dopóki skrypt nie dotrze do końca odczytywanego pliku.
Zwróć uwagę na zawarty w linii 20 ciąg znaków: vbCrLf. To jedna z tzw. wewnętrznych stałych języka Visual Basic Script. Nie wymaga ona deklaracji w sekcji nagłówka, jest „zrozumiała” od razu przez interpreter VBS (w Windows jest to Windows Script Host). Co oznacza? Jest odpowiednikiem znaku powrotu karetki (czyli wciśnięcia klawisza [Enter]) oraz przejścia do nowej linii (Lf oznacza Line Feed).
W zasadzie na linii 22 można poprzestać, ale wtedy, po uruchomieniu skryptu, nie wiedziałbyś, kiedy zakończył on swoją pracę. Dlatego w linii 23 za pomocą obiektu WScript
i metody Echo wprowadzono polecenie wyświetlenia odpowiedniego komunikatu – ostatnie dwie linie zamykają pliki, na których skrypt pracował.