Hrvatska akademska i istraživačka mreža
  NASLOVNICA MAPA WEBA TRAŽILICA KONTAKTI CARNET WEB
Hrvatska akademska i istraživačka mreža
 
menu 4
Sigurnost
menu 4
Distribucija
menu 4
Pomoć
menu 4
Dokumenti
menu 4
menu 4

 

 

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 objFSO
Set 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





[Lista]
Ovu uslugu CARNeta realizira Sveučilišni računski centar Sveučilišta u Zagrebu
  Copyright ©2005. CARNet. Sva prava zadržana. Impressum.
Mail to
sys-portal@CARNet.hr