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,以参数形式返回结果,类似高级语言的参数引用传递,实现格式如下: