bat 脚本之 使用函数
 
 版权声明:本文为博主原创文章,未经博主允许不得转载。转载请注明出处

 

 

综述

Windows bat脚本是一种解释性的脚本语言,可以拿到做很多事情。对于稍简单的问题:比如通过注册表判断下档期机器的语言啊,国家啊,安装了那些软件啊等等还少诶简单。但是如果有可能使用bat脚本来处理较复杂的问题时,就需要用函数来将其模块化,方便bat脚本的阅读和编写。下面来介绍下bat 函数的用法

bat函数写法

如下是一个最简单的函数写法;以:func开始以goto:eof结束。:funcgoto:eof之间的为函数内容,例如这里的echo this is a bat func

 
1 :func
2 echo this is a bat func
3 goto:eof

 

 
bat函数调用

写好了bat函数之后,我们需要调用它。如下代码片段展示了如何在bat脚本中调用函数。其实很简单,就这一句call:func即可。

 

1 call:func
2 pause
3 :func
4 echo this is a bat func
5 goto:eof

 

bat函数返回值

目前我了解到的bat函数返回值的获取有如下两种方法:

  • 使用参数带回
  • 使用全局变量带回

这里直接贴上关于bat函数的各种条件的验证代码

 
 
 1 echo off
 2 color 0d
 3 echo bat Function example
 4 echo =================================
 5 echo ==========Func No paramter ======
 6 echo =================================
 7 echo before call myFuncNoPara
 8 call:myFuncNoPara
 9 echo after call myFuncNoPara
10 echo =================================
11 echo ===========Func has paramter=====
12 echo =================================
13 echo before call myFuncHasPara
14 call:myFuncHasPara 123 abc
15 echo after call myFuncHasPara
16 echo =================================
17 echo =======Func with return value====
18 echo =================================
19 set return=123
20 set returnPara=321
21 echo return:%return%
22 echo returnPara:%returnPara%
23 echo befora call myFuncReturnValue
24 call:myFuncReturnValue returnPara abc
25 echo after call myFuncReturnValue
26 echo return:%return%
27 echo returnPara:%returnPara%
28 
29 pause
30 :myFuncNoPara
31 echo myFuncNoPara enter
32 echo myFuncNoPara First para:%1
33 echo myFuncNoPara Second para:%2
34 echo myFuncNoPara Third para:%3
35 echo myFuncNoPara exit
36 goto:eof
37 
38 :myFuncHasPara
39 echo myFuncHasPara enter
40 echo myFuncHasPara First para:%1
41 echo myFuncHasPara Second para:%2
42 echo myFuncHasPara Third para:%3
43 echo myFuncHasPara exit
44 goto:eof
45 
46 :myFuncReturnValue
47 echo myFuncReturnValue
48 echo myFuncReturnValue First para:%1
49 echo myFuncReturnValue Second para:%2
50 set "%~1=%2%"
51 set return=%2
52 goto:eof

 

运行效果图

bat 脚本之 使用函数_.net