Solved

How to pass parameters in vbscript

Posted on 2008-10-09
8
1,873 Views
Last Modified: 2012-06-27
Hi,
i want to write a stand alone vbscript that get 5 numbers and return 2 results, the sum and the multipling of this 5 numbers. i need to run this vbscript from java code and use the return results.
please help me with tha vbscript and the java code (include use the return parameters).
Thanks.
0
Comment
Question by:ExpandNetworks
  • 5
  • 3
8 Comments
 
LVL 65

Expert Comment

by:RobSampson
ID: 22682172
Hi, the only way that I can think of to do this is to pass the five numbers to the VBScript, as well as another argument that specifies whether you want to sum or multiply those numbers.  VBScript is only capable of returning one integer value at a time.

Here is the VBS that will do the calculation for you.  The first parameter must be a string of "sum" or "multiply".  The rest of the parameters can be 1 or more integers.

Regards,

Rob.

If WScript.Arguments.Count > 1 Then

	strMode = WScript.Arguments.Item(0)

	If LCase(strMode) = LCase("sum") Then

		intTotal = 0

	ElseIf LCase(strMode) = LCase("multiply") Then

		intTotal = 1

	End If

	For intArg = 1 To WScript.Arguments.Count - 1

		If LCase(strMode) = LCase("sum") Then

			intTotal = intTotal + CInt(WScript.Arguments.Item(intArg))

		ElseIf LCase(strMode) = LCase("multiply") Then

			intTotal = intTotal * CInt(WScript.Arguments.Item(intArg))

		End If

	Next

	WScript.Quit(intTotal)

Else

	WScript.Echo "There were not enough arguments passed to this script."

End If

Open in new window

0
 
LVL 65

Expert Comment

by:RobSampson
ID: 22682180
And this is a VBS implementation of how to call that function......I'm not that familiar with JavaScript, but perhaps this will help you create a JavaScript version, if you know it....

Regards,

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

strVBS = "C:\Temp\Scripts\Test1.vbs"

'strMode = "sum"

strMode = "multiply"

arrNumbers = Array(1,2,3,4,5)
 

strCommand = "wscript " & strVBS & " " & strMode

For Each intNum In arrNumbers

	strCommand = strCommand & " " & intNum

Next
 

strReturn = objShell.Run(strCommand, 1, True)

MsgBox strReturn

Open in new window

0
 

Author Comment

by:ExpandNetworks
ID: 22688115
It is possible to return a string or an array instad of only one integer?
0
 
LVL 65

Expert Comment

by:RobSampson
ID: 22691392
No, not without writing that value to a file or environment variable for the other script to read from.

The wscript.quit method is only capable of returning a single integer value.

If you want the VBScript to write to a file, for the JavaScript to pick up later, than can be done....

Regards,

Rob.
0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 

Author Comment

by:ExpandNetworks
ID: 22694474
so,
how can i use the environment variable?
can you please show me an example?
Thanks
0
 
LVL 65

Accepted Solution

by:
RobSampson earned 250 total points
ID: 22699100
Hi, well, again, I'm not sure about a JavaScript implementation, but in VBScript, you can use the following code.

In the links in the comments, there is a slight alternative to this method for accessing environment variables as well.

Regards,

Rob.
strEnvVarName = "MakeRuleReturnCode"

Set_Env_Var strEnvVarName, "0"

strVarValue = Get_Env_Var(strEnvVarName)
 

MsgBox strEnvVarName & " currently has a value of " & strVarValue
 

Sub Set_Env_Var(strVarName, strVarValue)
 

	' SOURCE: http://www.codecomments.com/archive299-2005-12-736281.html

	' HOW TO ECHO???: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/05426477-f6e4-4dcb-8101-3f7d979c8ed5.asp

	Dim objShell, objEnvVar

	Set objShell = CreateObject("WScript.Shell")

	Set objEnvVar = objShell.Environment("Volatile")

	objEnvVar(strVarName) = strVarValue

	Set objEnvVar = Nothing

	Set objShell = Nothing

	

End Sub
 

'*************************************************************
 

Function Get_Env_Var(strVarName)
 

	' SOURCE: http://www.codecomments.com/archive299-2005-12-736281.html

	' HOW TO ECHO???: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/05426477-f6e4-4dcb-8101-3f7d979c8ed5.asp

	Dim objShell, objEnvVar

	Set objShell = CreateObject("WScript.Shell")

	Set objEnvVar = objShell.Environment("Volatile")

	Get_Env_Var = objEnvVar(strVarName)

	Set objEnvVar = Nothing

	Set objShell = Nothing

	

End Function

Open in new window

0
 

Author Closing Comment

by:ExpandNetworks
ID: 31504719
Thanks, Rob
It's was very helpfull.....
Thanks again.
0
 
LVL 65

Expert Comment

by:RobSampson
ID: 22706867
No problem. Thanks for the grade. I hope you can find a JavaScript equivalent....

Rob.
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Over the years I have built up my own little library of code snippets that I refer to when programming or writing a script.  Many of these have come from the web or adaptations from snippets I find on the Web.  Periodically I add to them when I come…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

707 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

12 Experts available now in Live!

Get 1:1 Help Now