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
goto:eof
:func
echo this is a bat func
goto:eof
bat函数返回值
目前我了解到的bat函数返回值的获取有如下两种方法:
- 使用参数带回
- 使用全局变量带回 这里直接贴上关于bat函数的各种条件的验证代码
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%
pause
goto:eof
: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
echo myFuncReturnValue
echo myFuncReturnValue First para:%1
echo myFuncReturnValue Second para:%2
set "%~1=%2%"
set return=%2
goto:eof
运行结果
C:\Program Files (x86)\Notepad++>echo off
bat Function example
=================================
==========Func No paramter ======
=================================
before call myFuncNoPara
myFuncNoPara enter
myFuncNoPara First para:
myFuncNoPara Second para:
myFuncNoPara Third para:
myFuncNoPara exit
after call myFuncNoPara
=================================
===========Func has paramter=====
=================================
before call myFuncHasPara
myFuncHasPara enter
myFuncHasPara First para:123
myFuncHasPara Second para:abc
myFuncHasPara Third para:
myFuncHasPara exit
after call myFuncHasPara
=================================
=======Func with return value====
=================================
return:123
returnPara:321
befora call myFuncReturnValue
myFuncReturnValue
myFuncReturnValue First para:returnPara
myFuncReturnValue Second para:abc
after call myFuncReturnValue
return:abc
returnPara:abc
请按任意键继续. . .
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为: 2021/05/06 07:10