Solved

VBScripting Error

Posted on 2008-11-02
4
1,572 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 58

Expert Comment

by:tigermatt
ID: 22863504

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
ID: 22863529
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
ID: 22863961
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
ID: 22864574
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

Get HTML5 Certified

Want to be a web developer? You'll need to know HTML. Prepare for HTML5 certification by enrolling in July's Course of the Month! It's free for Premium Members, Team Accounts, and Qualified Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This is an addendum to the following article: Acitve Directory based Outlook Signature (http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_24950055.html) The script is fine, and works in normal client-server domains…
When you see single cell contains number and text, and you have to get any date out of it seems like cracking our heads.
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…

635 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