TaskCentre – VBScript – liczenie plików w folderze

Często zdarza się że chcemy w TaskCentre stworzyć pętle która przetworzy nam znajdujące się na dysku pliki i wykona z nimi odpowiednią operację. w tym celu posłużymy się językiem VBScript a dokładnie tym fragmentem:

Set filesys = CreateObject("Scripting.FileSystemObject")

Set DataFolder = filesys.GetFolder("C:\YouFilePath\")
Set DataFiles = DataFolder.Files
NumberOfFiles = DataFiles.Count 

ThisStep.LogError NumberOfFiles

W systemie TaskCentre rozpoczynamy układanie odpowiednich klocków w przestrzeni roboczej. Przeciągamy do naszej przestrzeni roboczej nowy klocek o nazwie Run VB Script i zmieniamy jego nazwę np. na PoliczIloscPlikow. Na kolejnej zakładce wklejamy wyżej wypisany fragment kodu.

1
Wklej fragment kodu do komendy Run VB Scripts

w #3 linii kodu zmieniamy ścieżkę z C:\Exmaple\ na swoją własną w której chcemy sprawdzić ilość plików. Następnie w systemie dodajemy nową zmienną o nazwie NumberOfFiles która będzie przechowywać informację o ilości znalezionych przez nas plików. Przypisanie do zmiennej znajduje się linii nr. #5. Linia nr. 7 wyświetla rejestruje nam natomiast w Event Logu systemu informację o ilości znalezionych plików.

Dodawanie zmiennej w systemie TaskCentre
Dodawanie zmiennej w systemie TaskCentre
3
Wygląd Taska po zapisaniu zmian

Uruchamiając teraz naszego taska będziemy mieli informację ile plików znajduje się we wskazanym folderze. Możemy teraz przejść do tworzenia pętli warunkowej. Z przybornika dodajemy element Decision do naszej przestrzeni roboczej. Następnie metodą przeciągnij i upuść określamy kolejność wykonywania zadań. Przeciągamy wcześniej skonfigurowany Run VB Script na blok Decision. Powstanie nam w ten sposób nowa ścieżka obiegu informacji.

Uruchom VB Script a następnie przejdź do bloku decyzyjnego.
Uruchom VB Script a następnie przejdź do bloku decyzyjnego.

Dodajemy do naszej przestrzeni roboczej kolejne 3 klocki Run VB Script. Pierwszy klocek nazywamy Zamknij i nie wpisujemy do niego żadnego kodu do wykonania. W drugim klocku natomiast dodamy zapisywanie aktualnego nr. pliku do Event Loga. W trzecim klocku zmniejszymy ilość plików o 1.

Wyświetlenie w Event Logu informacji aktualnym numerze pliku
Wyświetlenie w Event Logu informacji aktualnym numerze pliku

Czy trzeba znać na pamięć komendy? Oczywiście że nie! Wszystko możemy przeciągnąć z przybornika. Po prostu złap w przyborniku komendę LogInfo z zakładki EnvoimentThis Step i przeciągnij ją do narzędzia Run Scripts.

ThisStep.LogInfo "Numer pliku: " & Variables("NumberOfFiles")

Następnie tworzymy Run VB Scripts z komendą zmniejszającą ilość plików.

Variables("NumberOfFiles") = Variables("NumberOfFiles") - 1

Dlaczego nie zastosowałem zapisu Variables(„NumberOfFiles”)–? Bo TaskCentre go nie obsługuje. Teraz przeciągamy odpowiednio klocki tak aby powstał nam pełen obieg.

Ułożona pętla warunkowa
Ułożona pętla warunkowa

Został nam jeszcze jeden bardzo istotny element! Uzupełnienie pętli warunkowej o same warunki. Otwieramy nasz blok Decision i wpisujemy w niego odpowiednie wartości.

Jeżeli ilość plików jest większa od 0 to przejdź do klocka WyswietlIlosc
Jeżeli ilość plików jest większa od 0 to przejdź do klocka WyswietlIlosc
Else (czyli 0 lub mniejsze) przejdź do klocka Zamknij i wyjdź z zadania
Else (czyli 0 lub mniejsze) przejdź do klocka Zamknij i wyjdź z zadania
Gotowa pętla warunkowa
Gotowa pętla warunkowa

To wszystko. Po tym krótki tutorialu powinieneś umieć posługiwać się narzędziami typu Run Script (VBScript), blok Decision, komendami takimi jak Variables, LogInfo, Event Log oraz tworzyć pętle warunkowe.

Kasztelan Paweł

Programista samouk, zakochany w ZF i Laravel, szerzący opinię że PHP + JS + HTML + CSS to są języki w których może zostać stworzona aplikacja równie dobra, a nawet lepsza od twardego klienta.