BAT批处理脚本也可以使用函数,函数可以带参数,并且返回结果。但是批处理脚本的函数调用返回结果处理却不是很友好,处理起来相对麻烦。本文详细讲解函数定义、函数调用及调用结果如何返回。
vfunc.bat
@echo off
echo sum1 a b, return with global variable.
set a=10
set b=20
call :sum1 %a% %b%
echo sum1(%a%,%b%)=%result1%
echo=
echo sum2 a b, return with argument.
set a=10
set b=20
call :sum2 %a% %b% result2
echo sum2(%a%,%b%)=%result2%
echo=
goto :eof
:sum1
set /a result1=%~1 + %~2
goto :eof
:sum2
set /a r3=%~1 + %~2
set "%~3=%r3%"
goto :eof
cmd命令框运行结果
D:\cmdtest\lianxi>vfunc.bat
sum1 a b, return with global variable.
sum1(10,20)=30
sum2 a b, return with argument.
sum2(10,20)=30
代码说明:
1)函数定义
:sum1
set /a result=%~1 + %~2
goto :eof
注意:函数体执行完毕,别忘了goto :eof,结束函数执行
2)函数调用
call :sum1 %a% %b%
call :sum2 %a% %b% result2
rem 函数调用结果处理
1)全局变量
代码中函数sum1,以全局变量实现返回结果
2)参数形式返回结果
函数sum2,以参数形式返回结果,类似高级语言的参数引用传递,实现格式如下: