Jump to content

VBScript - Writing Func/Sub that can take 0 or 1 args?


Recommended Posts

I was wondering if there was some way that I can write a function or sub that can be called with or without arguments?

I specifically want to be able to write a func/sub that can either accept 1 or 0 arguments and then handle that inside the func/sub to respond differently.

I suspect that the best I can do is pass in an empty string, but I'd be happy to hear anyone's wisdom on this?

Link to comment
Share on other sites


What about something like this?

set Args = Wscript.Arguments
If Args.Count < 1 Then
Do Something
Else do differently

<Edit>

I've just re-read your request and your looking for arguments to a function or sub.

There is no method for this only workarounds. Being primarily a batch man my suggestion would be to pass an array and use logic to allocate variables from there.

Example:
somesub Array(13, 23, somevar)


sub somesub(aArgs)

if IsArray(aArgs) then

x = aArgs(0)

if Ubound(aArgs) > 0 y = aArgs(1)

if Ubound(aArgs) > 1 a = aArgs(2)

if Ubound(aArgs) > 2 b = aArgs(3)

Else

x = aArgs

End if

End sub

</Edit>

Link to comment
Share on other sites

With not much info here is a demo I made for you.

Save as Arg.vbs

 Dim Fso : Set Fso = CreateObject("Scripting.FileSystemObject")
Dim DelFile
If Wscript.Arguments.Count = 0 Then
WScript.Echo "This Needs A File To Be Drop" & vbCrLf & _
"And Drop On To This Script."
Else
For Each DelFile in Wscript.Arguments : Fso.DeleteFile(DelFile) : Next
End If

Link to comment
Share on other sites

Sorry guys, you seem to have misunderstood me, I'm not talking about WScript.Arguments as in arguments to the script itself, but actually a function within a script that I'd like to be able to call with either one parameter, "a message string", or no parameters, in which case the function would behave slightly differently.

I suspect that I cannot call a func/sub defined with one arg without any args and that I must pass an empty string to do this

Link to comment
Share on other sites

  • 3 weeks later...

err, that's that question, can you do something like that in VBScript?

So far, I haven't found an answer, you have to pass in the predefined number of parameters to every function call (unless you pass in an array), you can't have it take 0 or 1 parameters it seems.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...