humbletech99 Posted January 30, 2008 Share Posted January 30, 2008 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 More sharing options...
Yzöwl Posted January 30, 2008 Share Posted January 30, 2008 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> Link to comment Share on other sites More sharing options...
gunsmokingman Posted January 30, 2008 Share Posted January 30, 2008 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 More sharing options...
humbletech99 Posted January 30, 2008 Author Share Posted January 30, 2008 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 More sharing options...
SilverBulletUK Posted February 16, 2008 Share Posted February 16, 2008 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? Link to comment Share on other sites More sharing options...
humbletech99 Posted February 19, 2008 Author Share Posted February 19, 2008 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now