批处理是可以实现文件内部函数调用的。
@ECHO OFF
SETLOCAL
SET arg=1
CALL :Print %arg%
SET arg=2
CALL :Print %arg%
CALL :PlusOne
echo %arg%
ENDLOCAL
GOTO :EOF
:Print
ECHO %1
GOTO :EOF
:PlusOne
SET /a arg=%arg%+1
GOTO :EOF
Output:
1
2
3
1. 调用格式:
CALL :Lable Argument(s)
2. 被调用的函数用“GOTO :EOF”实现return。
3. 可以传递参数,但是不能改变参数的值。
4. 没有返回值,只能靠环境变量实现值的传递。