Einbinden von Skripts in VBScript-Dateien

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