Have you ever wanted to include another .vbs file with all your common functions in a script?
Many people I have met thought it wasn’t possible.
But it is actually pretty easy to do with “ExecuteGlobal”
to make it even easier, I have created a small function which you can put in your scripts and use a simple
I have made 2 small example scripts to show you how to use it:
Sub WriteLog(strMessage) Const FOR_APPENDING = 8 strFileName = "C:\test.txt" Set objFS = CreateObject("Scripting.FileSystemObject") If objFS.FileExists(strFileName) Then Set oFile = objFS.OpenTextFile(strFileName, FOR_APPENDING) Else Set oFile = objFS.CreateTextFile(strFileName) End If oFile.WriteLine strMessage End Sub
This file could be a shared file with all your common functions such as Log writer.
Include("C:\functions.vbs") WriteLog "Start of Script!" Sub Include (strFile) 'Create objects for opening text file Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.OpenTextFile(strFile, 1) 'Execute content of file. ExecuteGlobal objTextFile.ReadAll 'CLose file objTextFile.Close 'Clean up Set objFSO = Nothing Set objTextFile = Nothing End Sub
Then everytime you create a script you include the function and make sure to include the other vbs files in the beggning of the script.
Now you have access to all the functions from the other scripts, from inside your new script!
and the next time the management tells you to change the Log Format to a different date/time format, so simular. You just have to change the function in the shared file, instead of editing all your scripts!
But beware not to corrupt the shared file, cause it will make all your scripts fail 😉