bat函数调用 带返回值

bat 脚本之 使用函数

摘自:https://blog.csdn.net/peng_cao/article/details/73999076

  • 综述
  • bat函数写法
  • bat函数调用
  • bat函数返回值

 

综述

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

bat函数写法

如下是一个最简单的函数写法;以:func开始以goto:eof结束。:funcgoto: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函数的各种条件的验证代码

参数作为输出参数时,注意:

  1. ::注: 参数作为输出参数时,函数内不要使用SETLOCAL和ENDLOCAL
  2. ::注: 参数作为输出参数时,此文件不要设置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

运行效果图

函数及其运行结果

转载于:https://www.cnblogs.com/LiuYanYGZ/p/11254598.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

配置 jvisualvm 监控Java虚拟机

配置JMX远程连接 1. 配置启动参数 启动jar时,添加如下配置-Dcom.sun.management.jmxremote.port5050 -Dcom.sun.management.jmxremote.sslfalse -Dcom.sun.management.jmxremote.authenticatefalse -Djava.rmi.server.hostname192.168.94.23 启动参数说明 -Dcom.sun…

所有排序算法

---恢复内容开始--- 先看看复杂度大小吧 冒泡排序 直接上代码,? # 冒泡排序def bubble_sort(alist): for j in range(len(alist) - 1, 0, -1): for i in range(j): if alist[i] > alist[i 1]: alist[i], alist[i 1] ali…

亲身经历之微信支付沙箱环境扫码支付遇到的那些坑

很多用户在调用微信支付扫码支付沙箱环境都一脸迷茫,废话不多说,遇到很多坑,为了让大家少走弯路下面直接说说我开发微信支付遇到坑,微信沙箱不是一般的坑,是很大的坑。 1.首先下载的官方demo,不能直接用,里…

Microsoft .NET Pet Shop 4.0 学习之旅(二) - 项目的引用关系1

Microsoft .NET Pet Shop 4.0 学习之旅&#xff08;二&#xff09; 项目的引用关系1 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />初看到Pet Shop 4.0的源代码觉得结构很复杂&#xff0c;今天我只讨论业务逻辑层&#xff08;…

vs.net各版本解决方案相互转换工具

感谢Arthur Liberman, 感谢zu14.cn三角猫 工具下载转载于:https://www.cnblogs.com/JoinZhang/archive/2010/07/09/1774617.html

杂谈杂想!

a) 在Live Write 实施插入地图 b) 金山词霸为什么总是把“音乐(YUE)”念成“音乐&#xff08;LE&#xff09;”&#xff1f;这个bug好多年&#xff01; c) 养的基瘦了&#xff0c;人却变胖了&#xff01; 转载于:https://www.cnblogs.com/jeffersyuan/archive/2007/11/10/95528…

链接Mysql的api mysqli和pdo

HP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi extension ("i" 意为 improved)PDO (PHP Data Objects)PDO 应用在 12 种不同数据库中&#xff0c; MySQLi 只针对 MySQL 数据库。 如果你的项目需要在多种数据库中切换&#xff0c;建议使用 PDO 两者都是面向对…

Vue项目中自动将px转换为rem

一、配置与安装步骤&#xff1a; 1、在 Vue 项目的 src 文件夹下创建一个 config 文件夹&#xff1a; 2、在 config 文件夹中创建 rem.js&#xff1a; 3、将以下代码复制到 rem.js 中&#xff1a; // 基准大小 const baseSize 32 // 设置 rem 函数 function setRem () {// 当前…

MySQL8.0.19下载安装及配置详细步骤

下载&#xff1a; 软件下载地址&#xff1a;https://www.mysql.com/downloads/ 进入主页后下滑见 然后点击下图的MySQL Community Server 进入之后&#xff0c;点击Download进行下载 进入Download之后&#xff0c;点击No thanks, just start my download&#xff08;无需注…

解决[ERROR] [MY-013276] [Server] Failed to set datadir to ‘F:\Mysql\mysql-8.0.19-winx64\data\‘ (OS er

解决[ERROR] [MY-013276] [Server] Failed to set datadir to ‘F:\Mysql\mysql-8.0.19-winx64\data’ (OS errno: 2 - No such file or directory)报错问题 输入&#xff1a;mysqld --initialize --usermysql --console 如下图&#xff1a; 然后输入mysqld -install&#xff…

DataTable操作相关实例

代码 publicDataSet GetChildDepartmentsByUserId(Guid userId) { DataSet ds newDataSet(); try{ OrgChartDB.OrgChart_PermissionDataTable pdt permissionTableAdapter.GetDataByUserId(userId); for(inti 0; …

修改mysql密码时遇见ERROR 1064 (42000) You have an error in your SQL syntax; check the manual that correspo

修改mysql密码时遇见ERROR 1064 (42000) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘password(‘123456’)’ at line 1报错 如下图&#xff1a; 这个句子翻译过来的意思是…

JavaScript基础内容

1.1 JavaScript基础概念&#xff1a; JavaScript (ECMAScript) &#xff1a;JavaScript 是脚本语言。JavaScript和ECMAScript通常被人用来表达相同的含义&#xff0c;但是JavaScript并不是这么一点含义&#xff0c;它是由ECMAScript 核心. DOM 文档对象模型. BOM 浏览器对象模型…

如何利用navicat可视化软件添加与新建mysql数据库

新建 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 打开navicat,如下图&#xff1a; 点击连接 名称可以…

mysql -- 死锁

死锁&#xff08;Deadlock&#xff09; 什么是死锁 所谓死锁&#xff1a;是指两个或两个以上的进程在执行过程中&#xff0c;因争夺资源而造成的一种互相等待的现象&#xff0c;若无外力作用&#xff0c;它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁&#xf…

在windows下的cmd中如何进入与退出mysql

在windows下的cmd中如何进入与退出mysql https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 进入&#xff1a;…

在shell中全局变量与局部变量的区别及其举例

主要区别&#xff1a; 1.作用域不同&#xff1a;全局变量的作用域为整个程序&#xff0c;它的声明在后面的各个部分都可以发生作用&#xff0c;而局部变量仅仅为定义的某个函数。且局部变量只能在局部进行使用。 2.优先级不同&#xff1a;局部变量优先于全局变量。 3.生命周期…

黑盒测试概念简述,黑盒测试优缺点、黑盒用例设计方法简单介绍及黑盒测试方法使用总结

黑色测试黑盒测试概念&#xff1a;黑盒的优缺点介绍&#xff1a;黑盒测试用例设计方法简单介绍&#xff1a;黑盒测试方法使用总结&#xff1a;黑盒测试概念&#xff1a; 又称功能测试或数据驱动测试&#xff0c;是用来检测每个功能是否正常使用。黑盒测试主要意味着测试要在软…

超文本css样式换行

之前有关于LODOP中纯文本换行的相关博文&#xff1a;Lodop纯文本英文-等符号自动换行问题纯文本的遇到不拆分的单词的时候&#xff0c;可以通过LODOP 语句设置允许标点溢出&#xff0c;且英文单词拆开。超文本需要通过css样式控制&#xff0c;相关博文&#xff1a;Lodop打印控件…

详述白盒测试逻辑覆盖法的语句覆盖及其缺点

语句覆盖的定义&#xff1a; 语句覆盖就是设计若干个测试用例&#xff0c;使被测试程序中的每条可执行语句至少执行一次。比如说我们测试用例里面有10个语句&#xff0c;那么这10个语句都要被测试到。 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01;…