Solved

VBScripting Error

Posted on 2008-11-02
4
1,562 Views
Last Modified: 2012-05-05
I know basically nothing about vbscripting (just learning now), but was a programmer in a former life. I found some vbscripting code with a google search and want to automate the installation of a software update on numerous computers.  I receive "Cannot use parentheses when calling a Sub" but in my simple brain this is an "If" statement, not a "Call" to a sub.  I havent had any luck trying to figure out how to debug the code either.

Can anyone point out the error in this coding or why it appears to be a Sub routine.  How can I change it to a Call? I'll take all the helpful hints and recommendations your will provide.

Thanks
object.Run(strCommand, [intWindowStyle],[bWaitOnReturn])  
 

'INSTALL CLIENTBASE PLUS Ver 3.04.03 USING VBScript    

Set objShell = WScript.CreateObject("WScript.Shell")

spath = objShell.CurrentDirectory
 

If fso.FileExists(spath & "\cbpupdate30403003.EXE") Then

	path = """" & spath & "\cbpupdate30403003.EXE" & """ /s"

	objShell.Run(path, 1 ,True)

	i = 0

	'INSTALL CLIENTBASE PLUS Ver 3.04.03 Build 03    

	i = objShell.Run(path, 1 ,True)

	If (i = 0) Or (i = 3010) Then 

		'WRITE EXIT CODE [0-success/3010-success&requires reboot] TO EVENTLOG

		objShell.LogEvent vbLogSuccess, sLogHeader & "CLIENTBASE PLUS Ver 3.04.03 installation completed successfully." & 
 

VbCrLf & "Exit code: " & i

	Else

		MsgBox "The installation of CLIENTBASE PLUS returned an error: " & i & VbCrLf & _

		"Please contact IT Support to report this error.", vbOKOnly

		objShell.LogEvent vbLogError, sLogHeader & "Installation returned failure code: " & VbCrLf & "Exit code: " & i

	End If

	

Else

	WScript.Quit (1)

End If
 

set fso = Nothing

set WSHShell = Nothing

Wscript.Quit

Open in new window

0
Comment
Question by:conlin
  • 2
4 Comments
 
LVL 58

Expert Comment

by:tigermatt
Comment Utility

In VBScript there is a Function declaration, and then a Sub declaration. Essentially you use a Function when it should accept parameters and return a value (the value is returned within the function by setting a variable the same name as the function to the appropriate value to be returned). A Sub is used when parameters may / may not need to be accepted, but there should be nothing returned.

Which line does the parser say the Paranthesis error is on?

-tigermatt
0
 

Author Comment

by:conlin
Comment Utility
It doen't tell me anything. It fails with...
VBScript compilation error: Cannot use parentheses when calling a Sub.

Thanks where I'm stuck in the mud.
0
 

Author Comment

by:conlin
Comment Utility
Never mind.  I figured out a much better way to accomplish what I wanted to do.

Thanks anyway.
0
 
LVL 65

Accepted Solution

by:
RobSampson earned 125 total points
Comment Utility
Hi, the error you were getting most likely refers to lines like this:
objShell.Run(path, 1 ,True)

When you run a method in that fashion, with the parenthesis, you're expecting a return code, in which case you should use
boolReturn = objShell.Run(path, 1 ,True)

There are special cases where there's a slight exception to that rule, but I can't remember the reference right now.

Anyway, instead, if you don't require a return code, you can just use the same line without parenthesis, like this:
objShell.Run path, 1 ,True

and you won't get any errors.

Regards,

Rob.
0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

Suggested Solutions

Not long ago I saw a question in the VB Script forum that I thought would not take much time. You can read that question (Question ID  (http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_28455246.html)28455246) Here (http…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now