::-- Function section starts below here
::--------------------------------------------------------
:myDosFunc - here starts my function identified by it's label
echo.
echo. here the myDosFunc function is executing a group of commands
echo. it could do %~1 of things %~2.
goto:eof
Script Output: Script Output
going to execute myDosFunc with different arguments
here the myDosFunc function is executing a group of commands
it could do 100 of things YeePEE.
here the myDosFunc function is executing a group of commands
it could do 100 of things for me.
here the myDosFunc function is executing a group of commands
it could do 100 of things for me.
here the myDosFunc function is executing a group of commands
it could do 100 of things for.
Press any key to continue . . .
Returning Values the Classic Way - The classic way of returning values and the limitations
Description: The CALL command doesn`t support return values as known by other programming languages.
The classic walkaround is to have the function store the return value into a environment variable. The calling script can use this variable when the function returns. The :myGetFunc function below demonstrates how the variable var1 gets the "DosTips" string assigned which can then be used in the calling function.
Note: The var1 variable is reserved for this particular function. Any data stored in var1 by the calling function before calling :myGetVar will be overwritten.
Usage:
set "var1=some hopefully not important string"
echo.var1 before: %var1%
call:myGetFunc
echo.var1 after : %var1%
Script:
:myGetFunc - get a value
set "var1=DosTips"
goto:eof
Script Output: Script Output
var1 before: some hopefully not important string
var1 after : DosTips
Returning Values via References - Let the caller determine how to return the function result and avoid the need of dedicated variables
Description: Instead of using "global" variables for return value, the function can use one of it`s arguments as variable reference. The caller can then pass a variable name to the function and the function can store the result into this variable making use of the command line expansion of the command processor:
Note: The var1 variable is not reserved for this articular function. Any variable can be passed to the function the caller has full control.
Usage:
call:myGetFunc var1
echo.var1 after : %var1%
Script:
:myGetFunc - passing a variable by reference









