January 30, 200818 yr 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?
January 30, 200818 yr What about something like this?set Args = Wscript.ArgumentsIf Args.Count < 1 Then Do SomethingElse 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>
January 30, 200818 yr 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
January 30, 200818 yr Author 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
February 16, 200818 yr Well, with PHP you can do the following....<?phpfunction 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?
February 19, 200818 yr Author 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