BAT批处理脚本也可以使用函数,函数可以带参数,并且返回结果。但是批处理脚本的函数调用返回结果处理却不是很友好,处理起来相对麻烦。本文详细讲解函数定义、函数调用及调用结果如何返回。
1、代码案例
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 函数调用结果处理
2、两种返回结果方式说明
1)全局变量
代码中函数sum1,以全局变量实现返回结果
- sum1函数体内,给变量result1赋值
- 调用sum1函数后,获取变量result1值
2)参数形式返回结果
函数sum2,以参数形式返回结果,类似高级语言的参数引用传递,实现格式如下:
- sum2 arg1 arg2 引用参数result2
- sum2 函数体内修改result2值,如:set “%~3=%r3%”
- sum2 函数调用结束后,取参数result2值,%result2%