bat函数调用 带返回值

摘要:
但是,如果可以使用bat脚本来处理更复杂的问题,则需要使用函数将其模块化,以方便bat脚本的读写。下面是如何使用bat函数。bat函数以最简单的方式编写;以:func开头,以goto:eof结尾。下面的代码片段显示了如何调用bat脚本中的函数。事实上,这很简单。只需调用:func。
bat 脚本之 使用函数

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

综述

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: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

运行效果图

函数及其运行结果

免责声明:文章转载自《bat函数调用 带返回值》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Micrometer 快速入门svn下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用数据字典layui搜索框三联动

/** * 自定义的搜索初始化插件 * 说明: * 给需要异步加载数据字典的加上自定义属性jq-search="qu" * qu为数据字典对应的key * 如果需要级联查询的则加上自定义属性lay-filter, * 如果没有下一级或者子集则不需要加 * 三联动第一个lay-filter设成1,第三个设成3,代码中有判定 * echo用于放...

高起播低延时RTSP网页无插件流媒体播放器EasyPlayerRTSPwin播放库接口调用说明

需求分析 一般对于一个播放器,应该支持如下几种显示模式: 等比例,最大化区域显示,不裁剪 等比例,最大区域显示,裁剪 拉伸显示,铺满全屏 要实现这几种显示模式。其实只要对播放控件的布局进行些许调整即可。那EasyPlayer是怎么实现的呢? 应用场景 EasyPlayer-RTSP在多年与VLC的对标过程中,积累了广泛的应用场景,EasyPlaye...

批处理--md5校检

@echo off rem 获取文件xx.zip的MD5 for /f "delims=" %%i in ('md5.exe xx.zip') do (set md5_var=%%i) echo %md5_var% ::从文件获取MD5 格式MD5=xxxxxxxxxxxxxx ::tokens表示demlims后第一个符号分割的列号 fo...

DER编码

DER编码 1.countryName echo -n -e "x30x09x06x03x55x04x06x13x02x43x4E" > 20181204.der 2.organizationName echo -n -e "x30x0Fx06x03x55x04x0Ax0Cx08x32x30x31x38x31x32x30x34" >>...

Libevent:8Bufferevents高级主题

本章描述的是Libevent的bufferevent实现的一些高级特性,这对于普通应用来说并非必须的。如果你只是学习如何使用bufferevent,则应该跳过本章去阅读evbuffer的章节。 一:成对的bufferevent 有时,网络程序可能需要与自己本身进行对话。比如,某个程序用来在某些协议之上进行隧道用户链接,而有时它需要在这种协议之上,隧道与自...

MFC位图按钮

下载source VC++ demo project - 43.8 Kb 下载sample demo executable - 25.3 Kb 介绍 CCustomBitmapButton是一个派生自CWnd类的MFC控件。这个按钮有两个部分:一个背景和一个前景。如果WinXP和XP操作系统启用了主题,背景是一个位图加载从当前活跃的主题资源文件(我使用...