::--------------------------------------------------------
::-- Function section starts below here
::--------------------------------------------------------
:myFibo -- calculate recursively the next Fibonacci number greater or equal to a limit
:: -- %~1: return variable reference and current Fibonacci number
:: -- %~2: previous value
:: -- %~3: limit
SETLOCAL
set /a "Number1=%~1"
set /a "Number2=%~2"
set /a "Limit=%~3"
set /a "NumberN=Number1 + Number2"
if /i %NumberN% LSS %Limit% call:myFibo NumberN,%Number1%,%Limit%
(ENDLOCAL
IF "%~1" NEQ "" SET "%~1=%NumberN%"
)
goto:eof
Script Output: Script Output
The next Fibonacci number greater or equal 1000000000 is 1134903170.
Press any key to continue . . .
Summary - Defining a standard format for a DOS batch function
Description: With the information learned in this section we can define a standard format for a DOS batch functions as shown below.
Also check out the rich set of ready to use DOS functions provided by the DosTips.com function library.
Script:
:myFunctionName -- function description here
:: -- %~1: argument description here
SETLOCAL
REM.--function body here
set LocalVar1=...
set LocalVar2=...
(ENDLOCAL & REM -- RETURN VALUES
IF "%~1" NEQ "" SET %~1=%LocalVar1%
IF "%~2" NEQ "" SET %~2=%LocalVar2%
)
GOTO:EOF
出处:http://www.dostips.com/DtTutoFunctions.php









