Jump to content

Recommended Posts

Posted

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?


Posted

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>

Posted

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

Posted

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

  • 3 weeks later...
Posted

Well, with PHP you can do the following....

<?php
function someFunction($messageString = null)
{
if($messageString != null)
{
//Do something
}
else
{
//Do something else with user defined $messageString
}
}
?>

Is this not possible? Maybe by specifing a default value?

Posted

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.

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...