• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2309
  • Last Modified:

How to pass parameters in vbscript

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
ExpandNetworks
Asked:
ExpandNetworks
  • 5
  • 3
1 Solution
 
RobSampsonCommented:
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
 
RobSampsonCommented:
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
 
ExpandNetworksAuthor Commented:
It is possible to return a string or an array instad of only one integer?
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
RobSampsonCommented:
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
 
ExpandNetworksAuthor Commented:
so,
how can i use the environment variable?
can you please show me an example?
Thanks
0
 
RobSampsonCommented:
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
 
ExpandNetworksAuthor Commented:
Thanks, Rob
It's was very helpfull.....
Thanks again.
0
 
RobSampsonCommented:
No problem. Thanks for the grade. I hope you can find a JavaScript equivalent....

Rob.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 5
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now