Calling a Batch File Through VB Script
There would be some situations where we need to call Batch file from Scripts. Here the script to call INSTALL.bat
- Copy the below code to Notepad.
Function Tilak() dim shell set shell=createobject("wscript.shell") shell.run "INSTALL.bat" set shell=nothing End Function - Save the file as .VBS
- Then use this VBscript in Wise Package Studio's CustomActions pane.
Nice code
Nice code.....It really hepls ....
Thanks
Prasanna Kumar Raja
Sr.Application Packager
Anovatek
Prasanna Kumar Raja
Sr.Application Packager
Anovatek
a small addition
For the Run method:
shell.run "INSTALL.bat"
It's good to trap any potential errors into a variable and to tell the method not to execute the next line until the current process is complete.
errTrap = shell.run("INSTALL.BAT", 1, True)
This will return any error codes into errTrap. From there you can log the error or act on it accordingly in the script.
"True" tells wscript/cscript to "Wait until this command is complete before running the next line." The "1" is just the window style. Not that important.
Whenever you are returning values you have to put the arguments into parenthesis.
Additional script
Whenever we are executing vbscripts using Altiris, it is a best practice to return Exit Codes/Return Codes to the Altiris. Following is the template that not only return an Exit code but also writes to the Event Log.
Note: Place the executable and script in one place
'-------------------------------------------------- 'GET CURRENT FOLDER PATH path = FileSystemObject.GetParentFolderName(WScript.ScriptFullName) If Right(path, 1) <> "\" Then path = path & "\" End If errTrap = shell.Run(path, 1 ,True) If (errTrap = 0) Or (errTrap = 3010) Then 'WRITE EXIT CODE [0-success/3010-success&requires reboot] TO EVENTLOG shell.LogEvent vbLogSuccess, sLogHeader & "Installation completed successfully." & VbCrLf & "Exit code: " & errTrap WScript.Quit (errTrap) Else 'WRITE EXIT CODE TO EVENTLOG shell.LogEvent vbLogError, sLogHeader & "Installation failed." & VbCrLf & "Exit code: " & errTrap WScript.Quit (errTrap) End If Set FileSystemObject = Nothing Set Shell = Nothing '--------------------------------------------------I hope this may help.
Thanks,
Eshwar
Need to define sLogHeader variable
One needs to define sLogHeader variable so that the hedder of the event log will written with this name, befor the following line in the above script
(shell.LogEvent vbLogSuccess, sLogHeader & "Installation completed successfully." & VbCrLf & "Exit code: " & errTrap).
Example
sLogHeader = "Install batch file"
Preferably sLogHeader name should be task name that you are running so that it will be essy identify in event log.
I hope this may help.
Thanks
Sid
Question about nothing ...
I found really helpful your tip, just a question about the command line :
[quote]set shell=nothing[/quote]
What is the meaning for this line in this case ?
Thanks,
Paolo
Clears the memory allocated.
Its just to clear the cache memory which is being used by the variable shell. It frees the memory once the script completes its execution.
Cheers'
Vijay
Microsoft MVP [Setup-Deploy]
Weblog: www.msigeek.com
Would you like to reply?
Login or Register to post your comment.