bat 脚本之 使用函数
摘自:https://blog.csdn.net/peng_cao/article/details/73999076
- 综述
- bat函数写法
- bat函数调用
- bat函数返回值
综述
Windows bat脚本是一种解释性的脚本语言,可以拿到做很多事情。对于稍简单的问题:比如通过注册表判断下档期机器的语言啊,国家啊,安装了那些软件啊等等还少诶简单。但是如果有可能使用bat脚本来处理较复杂的问题时,就需要用函数来将其模块化,方便bat脚本的阅读和编写。下面来介绍下bat 函数的用法
bat函数写法
如下是一个最简单的函数写法;以:func
开始以goto:eof
结束。:func
和goto:eof
之间的为函数内容,例如这里的echo this is a bat func
:func echo this is a bat func goto:eof
bat函数调用
写好了bat函数之后,我们需要调用它。如下代码片段展示了如何在bat脚本中调用函数。其实很简单,就这一句call:func
即可。
call:func pause :func echo this is a bat func goto:eof
bat函数返回值
目前我了解到的bat函数返回值的获取有如下两种方法:
- 使用参数带回
- 使用全局变量带回
这里直接贴上关于bat函数的各种条件的验证代码
参数作为输出参数时,注意:
- ::注: 参数作为输出参数时,函数内不要使用SETLOCAL和ENDLOCAL
- ::注: 参数作为输出参数时,此文件不要设置setlocal enabledelayedexpansion
echo off color 0d echo bat Function example echo ================================= echo ==========Func No paramter ====== echo ================================= echo before call myFuncNoPara call:myFuncNoPara echo after call myFuncNoPara echo ================================= echo ===========Func has paramter===== echo ================================= echo before call myFuncHasPara call:myFuncHasPara 123 abc echo after call myFuncHasPara echo ================================= echo =======Func with return value==== echo ================================= set return=123 set returnPara=321 echo return:%return% echo returnPara:%returnPara% echo befora call myFuncReturnValue call:myFuncReturnValue returnPara abc echo after call myFuncReturnValue echo return:%return% echo returnPara:%returnPara% goto:eofpause :myFuncNoPara echo myFuncNoPara enter echo myFuncNoPara First para:%1 echo myFuncNoPara Second para:%2 echo myFuncNoPara Third para:%3 echo myFuncNoPara exit goto:eof:myFuncHasPara echo myFuncHasPara enter echo myFuncHasPara First para:%1 echo myFuncHasPara Second para:%2 echo myFuncHasPara Third para:%3 echo myFuncHasPara exit goto:eof:myFuncReturnValue_returncannot_be_set SETLOCAL echo myFuncReturnValue echo myFuncReturnValue First para:%1 echo myFuncReturnValue Second para:%2 set "%~1=%2%" set return=%2 ENDLOCAL:myFuncReturnValue ::SETLOCAL echo myFuncReturnValue echo myFuncReturnValue First para:%1 echo myFuncReturnValue Second para:%2 set "%~1=%2%" set return=%2 ::ENDLOCAL goto:eof
运行效果图