bat函数调用 带返回值
bat 脚本之 使用函数
摘自:https://blog.csdn.net/peng_cao/article/details/73999076
综述
Windows bat脚本是一种解释性的脚本语言,可以拿到做很多事情。对于稍简单的问题:比如通过注册表判断下档期机器的语言啊,国家啊,安装了那些软件啊等等还少诶简单。但是如果有可能使用bat脚本来处理较复杂的问题时,就需要用函数来将其模块化,方便bat脚本的阅读和编写。下面来介绍下bat 函数的用法
bat函数写法
如下是一个最简单的函数写法;以:func
开始以goto:eof
结束。:func
和goto:eof
之间的为函数内容,例如这里的echo this is a bat func
1 2 3 | :func echo this is a bat func goto:eof |
bat函数调用
写好了bat函数之后,我们需要调用它。如下代码片段展示了如何在bat脚本中调用函数。其实很简单,就这一句call:func
即可。
1 2 3 4 5 | call:func pause :func echo this is a bat func goto:eof |
bat函数返回值
目前我了解到的bat函数返回值的获取有如下两种方法:
- 使用参数带回
- 使用全局变量带回
这里直接贴上关于bat函数的各种条件的验证代码
参数作为输出参数时,注意:
- ::注: 参数作为输出参数时,函数内不要使用SETLOCAL和ENDLOCAL
- ::注: 参数作为输出参数时,此文件不要设置setlocal enabledelayedexpansion
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | 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:eof pause :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 |
运行效果图
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)