Beim Arbeiten mit Skripts (.vbs Dateien) gelangt man oft an den Punkt, an dem Funktionen bereits in mehreren anderen Skripts erstellt und verwendet wurden. Dabei wäre es praktisch, wenn man im neuen Skript nur noch eine Funktionssammlung einbinden könnte um die bereits erstellten Funktionen zu verwenden.
Der VBScript-Code zum Einbinden von Dateien:
Sub Include(Byval filename)
Dim codeToInclude
Dim FileToInclude
Const OpenAsDefault = -2
Const FailIfNotExist = 0
Const ForReading = 1
Const OpenFileForReading = 1
Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
'Check for existance of include
If Not FSO.FileExists(filename) Then
wscript.Echo "Include file not found."
Set FSO = Nothing
Exit Sub
End If
'open file to include
Set FileToInclude = FSO.OpenTextFile(filename, ForReading, _
FailIfNotExist, OpenAsDefault)
'read all contet of the file
codeToInclude = FileToInclude.ReadAll
'close file after reading
FileToInclude.Close
'now cleanup the unused objects
Set FSO = Nothing
Set FileToInclude = Nothing
'now execute code from include file
ExecuteGlobal codeToInclude
End Sub
Ein kleines Beispiel mit 2 Skript-Dateien:
Die Datei „include.vbs“ enthält eine Funktion „hello()“, welche „Hello %name%“ ausgibt:
sub hello(Byval person)
wscript.echo "Hello " & person
end sub
Das Hauptskript ist in der Datei „sayHello.vbs“ und bindet die Datei „include.vbs“ mit der obigen Funktion ein.
call Include("include.vbs")
call hello("Thomas")
Nach dem Aufruf der Funktion „hello()“, erscheint wie erwartet „Hello Thomas“ als Output. Somit wurde die Funktion „hello()“ erfolgreich eingebunden.
Herunterladen der Demo-Dateien