| 1-06-05 12:06 [Windows] Korak u VBS skripte
 
  piše BORIS TROJAN
 
 
 Korištenjem skripti vrlo se jednostavno mogu automatizirati svakodnevni poslovi održavanja i administriranja. Svladavanje osnovnih načela Microsoft Visual Basic Scriptinga (VBS) pomaže pri automatiziranju najjednostavnijih ponavljajućih zadataka na serverima i mreži kao što su, primjerice, kopiranje ili prijenos datoteka. 
   VBS skripte su podskup Microsoft Visual Basica koji se naziva Visual Basic Scripting Edition. Od klasičnog pisanja skripti u shellu razlikuju se po korištenju sasvim drugačijeg principa - objekata i metoda. Svi su klasični programerski koncepti i dalje jednaki - varijable, konstante, klopke za pogreške, uvjeti, itd. Ipak, VBS se razlikuje po tome što uvijek počinje nekim objektom. 
   Platforma za VBS skripte je Windows Scripting Host (Wscript.exe) koji nudi niz alata s predefiniranim mogućnostima. U VBS-u alate nazivamo objektima, a različite mogućnosti koje alat posjeduje nazivamo metodama.
   Osnovna sintaksa tako glasi:
   objekt.metoda
   Root objekt u Windows Scripting Hostu je Wscript, a objekata je ukupno 13. Koncept objekata i metoda pojasnit ćemo korištenjem navedenog objekta.
   Stvaranje objekta FileSystemObject
 Ovaj se objekt koristi za interakciju s datotečnim sustavom Windowsa. Budući da ne pripada bazičnim WSH objektima, ne može se koristiti direktno, nego ga WSH mora pozvati iz biblioteke Scripting Runtime (%windir%\system32\scrrun.dll).
   Nakon što je pozvan, FileSystemObject koristi se za stvaranje, kopiranje ili brisanje datoteka i direktorija. Pozivanje objekta je postupak koji se naziva "instantiating an object", a zapravo je stvaranje objekta i dodavanje tog objekta nekoj varijabli.
   Da bismo pozvali i stvorili ovaj objekt, poslužit ćemo se Windows Script Host root objektom Wscript:
   Wscript.CreateObject("Scripting.FileSystemObject") 
   Jedna od metoda objekta Wscript je i CreateObject koja će iz Scripting Runtime Libraryja preuzeti već postojeći objekt i pripremiti ga za korištenje u našoj skripti. No, da bismo objekt i njegove metode mogli koristiti moramo ga pridružiti nekoj varijabli. U Visual Basicu varijable zahtijevaju deklariranje:
   Dim objFSO
   Nadalje, da bismo nešto pridružili varijabli koristimo staru poznatu naredbu Set, tako da će "instantiranje" našeg objekta konačno izgledati ovako:
 Dim objFSOSet objFSO = Wscript.CreateObject("Scripting.FileSystemObject")
   Korištenje metoda objekta FileSystemObject
 Metode za manipuliranje datotečnim sustavom objekta FileSystemObject:
   CopyFile       kopira datoteke na drugu lokaciju
 DeleteFile     briše datoteke
 FileExists     vraća True ili False s obzirom na postojanje datoteke
 MoveFile       premješta datoteke na drugu lokaciju
 CopyFolder     kopira direktorije na drugu lokaciju
 DeleteFolder   briše direktorije
 FolderExists   vraća True ili False s obzirom na postojanje direktorija
 MoveFolder     premješta direktorije na drugu lokaciju
 Echo              ispis na ekranu
   Zadatak naše skripte je kopiranje datoteke koja se naziva datoteka.txt na mrežni dijeljeni direktorij. Prije kopiranja potrebno je provjeriti da li se datoteka nalazi na izvornom odredištu. 
   Dim objFSO
 Set objFSO = CreateObject("Scripting.FileSystemObject")
 
 If (objFSO.FileExists("C:\test\datoteka.txt ")) Then
 
 objFSO.CopyFile "C:\test\datoteka.txt", "\\Server1\DijeljeniDir\datoteka.txt"
 
 Else WScript.Echo("Datoteka ne postoji")
 
 End if
   Dosad smo koristili tri metode objekta FileSystemObject - FileExists, CopyFile i Echo. Pravilno korištenje if-then-else konstrukcije, zagrada i navodnika je prepoznatljivo i svladava se korištenjem.
 Otpuštanje objekta
 Programerska tehnika zahtijeva da se nakon "instantiranja" objekta i prije napuštanja skripte, korišteni objekt otpusti. To se postiže na način da se varijabli pridoda vrijednost nothing, doslovno:
   Set ObjFSO = Nothing
   Na kraju će skripta ispravno otpuštenog objekta izgledati ovako:
 'Kopiranje datoteke na dijeljeni direktorij
 '----- stvaranje objekta FileSystemObject ---------
 Dim objFSO
 Set objFSO = CreateObject("Scripting.FileSystemObject")
 
 '----- Da li datoteka.txt postoji i kopiranje -----
 If (objFSO.FileExists("C:\test\datoteka.txt ")) Then 
 objFSO.CopyFile "C:\test\datoteka.txt", "\\Server1\DijeljeniDir\datoteka.txt"
 
 Else WScript.Echo("Datoteka ne postoji")
 
 End if
 '----- Otpuštanje objekta -------------------------
 Set objFSO = Nothing
 Wscript.Quit
   Linkovi:
 Windows Script Host objekti
 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsconwindowsscripthostobjectmodel.asp 
 
 |