bat 脚本之 使用函数

bat 脚本之 使用函数

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

2017年06月30日 15:06:37 pengcao89 阅读数:4631

版权声明:本文为博主原创文章,未经博主允许不得转载。转载请注明出处: http://blog.csdn.net/peng_cao https://blog.csdn.net/cpwolaichile/article/details/73999076

综述

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

运行效果图

原文地址:https://www.cnblogs.com/LiuYanYGZ/p/10984375.html

时间: 2024-10-18 11:13:17

bat 脚本之 使用函数的相关文章

Bat脚本备份sqlserver 表结构、存储过程、函数、指定表数据

Bat脚本备份sqlserver 表结构.存储过程.指定表数据: @echo off cd /d %~dp0 ::备份表结构.存储过程和部分配置表的数据 set LogFile=report.log set servername="192.168.43.9" set DBname="TEST" set User="sa" set Password="123456*" echo Deployed Time: %date% %ti

Bat 脚本学习 (基础篇)

[转]Bat 脚本学习 2015-01-05 14:13 115人阅读 评论(0) 收藏 举报 基础部分: ====================================================================== 一.基础语法: 1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令.可以使用任何文本文件编辑工具创建和修改. 2.批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环. 3.批处理的

FTP 脚本 to Shell脚本&bat脚本&python脚本

---- linux Shell 脚本: #!/bin/bash cd /home/ftpuser source ~/.bash_profile FTPIP=127.0.0.1 ftpUser=ftpuser ftpPasswd=123456 DIR=upfile DUMPFILE=DY`date +_%Y%m%d`00001_000.tar.gz echo ${FTPIP} echo ${DUMPFILE} ftp -n<<! open ${FTPIP} user ${ftpUser} ${

写一个杀死Gradle Daemon的shell脚本和bat脚本

1. Gradle Daemon也就是Gradle守护进程 Gradle需要运行在一个Java虚拟机中,每一次执行gradle命令就意味着一个新的Java虚拟机被启动,然后加载Gradle类和库,最后执行构建.这样,构建起来会花费大量的时间在Java虚拟机的启动与关闭. 通过Gradle 守护进程,只需要启动一次Java虚拟机,之后就可以再利用,无需再次重启Java虚拟机.这样就达到缩短构建时间的目的. 2. Java虚拟机,每存在一个main函数就会新创建一个jvm,也就是说一台机器上可以创建

windows bat脚本实现ftp自动下载 删除

现在有一个需求就是把远程某个文件下面的图片,下载到本地,并且删除下载成功的的文件,而且远程目录下的那个图片会随时增加.假设一下如果所有的脚本都写好了,那么就需要调用windows上的计划任务定时执行脚本就ok了,Linux上利用cronjob 同样可以做到.大体的实现思路如下,当然了不止这一种方式. 在远程服务器上搭建ftp server ,例如这里在远程服务上的 images 作为下载目录.搭建ftp server 最简单的方式就是用FileZilla Server 这个工具去搭建,很方便,零

BAT脚本的一些技巧写法

我以前一直以为bat不能像Linux的shell一样设置函数并且调用,事实上我发现这是可以的.不过由于批处理的特性是一行一行执行的,这种label的函数必须要写在文本的最后.如果写在了批处理命令的前面,bat会逐行运行里面的命令的.写在文档的最后面,并且在"函数区域"前跳过这些代码. (顺便吐槽一下,这种函数的写法和linux的shell很不一样,shell的function中的命令必须写在命令的前面,让shell逐行运行一次,才能在后面的命令中被人调用.) 函数的写法: ::在这个例

如何通过bat脚本与zabbix_sender实时监控应用进程是否正在运行

为什么要使用zabbix_sender?zabbix获取数据有超时时间,如果一些数据需要执行比较长的时间才能获取的话,那么zabbix会出现异常,考虑到这种情况,zabbix增加了Trapper功能,客户端自己提交数据给zabbix,这个通道便是trapper.思路解析:在window主机上,编写一个每隔5秒就会执行tasklist查看进程的bat脚本,如果该脚本找到了指定的进程就通过zabbix_sender发送"is running"到zabbix_server服务器,此时对应的z

bat脚本

今天用bat脚本做了一个自动修改几个配置文件内容的功能. 因为只是初略的看了一下bat的语法,用到的知识点只涉及了 : rem   后面写注释 >      清空文件,然后向文件中写入内容 >>    向文件中追加内容 ^      如果要将10以内的数字单独作为 内容写入文件,需要在数字前加^ 如果要将一个%写入文件,必须要在.bat文件中写两个%% ren  修改文件夹名称 echo xxxinfo>c:\configpeth\ip_config.txt echo yyyyin

FAQ系列 | 如何在windows下用bat脚本定时备份mysql

并不是所有MySQL都运行在Linux下,windows下也需要做例行备份,下面是用bat脚本做自动化备份的例子,大家可以参考下. remrem C:\Program Files\WinRAR 需要放到 path 下,才能调用rar cli工具remrem 跳转到工作目录下f:cd f:\DBBAKrem 设置变量:备份文件名SET BAK_FILE=MY_DBBAK_%date:~0,-4%.sqlrem 设置变量:日志文件名SET LOG_FILE=MY_DBBAK.logrem 记录日志e