我是靠谱客的博主 单薄缘分,最近开发中收集的这篇文章主要介绍windows的bat脚本编写#1.注释#2.函数的写法3.延时的写法4.无限循环,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#1.注释

写bat批处理也一样,都要用到注释的功能,这是为了程式的可读性

在批处理中,段注释有一种比较常用的方法:

    goto start
     = 可以是多行文本,可以是命令
     = 可以包含重定向符号和其他特殊字符
     = 只要不包含 :start 这一行,就都是注释
    :start


另外,还有其他各种注释形式,比如:
 
   1、:: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)
    2、rem 注释内容(不能出现重定向符号和管道符号)
    3、echo 注释内容(不能出现重定向符号和管道符号)〉nul
    4、if not exist nul 注释内容(不能出现重定向符号和管道符号)
    5、:注释内容(注释文本不能与已有标签重名)
    6、%注释内容%(可以用作行间注释,不能出现重定向符号和管道符号)
    7、goto 标签 注释内容(可以用作说明goto的条件和执行内容)
    8、:标签 注释内容(可以用作标签下方段的执行内容)
 

#2.函数的写法

 

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

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

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%

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
echo myFuncReturnValue
echo myFuncReturnValue First para:%1
echo myFuncReturnValue Second para:%2
set "%~1=%2%"
set return=%2
goto:eof
 

3.延时的写法

 

 

在写批处理的时候我们有时需要让脚本暂停一段时间,然后接着做事。

在我们的c/c++编程中我们可以,

sleep()

但是windows的批处理中并没有提供这样的功能,那要怎么做呢?

其实方法还是有的,比如执行一个对我们没有什么意义的命令,如ping,目的地址填上一个无效的ip如 0.0.0.0

所以下面的命令就是能够睡眠一段时间

ping 0.0.0.0  -n 3

睡眠的时间长短就是通过-n后面的参数,这个数字越大,睡眠的时间就越长(本来这个这个参数是用来控制尝试ping的次数)

这时候我们上面的命令放入一个批处理中,执行,发现达到我们要的睡眠的效果,可以有ping的输出,可能这个ping的输出我们不需要,也不想看到,不然有人使用你的脚本就觉得很奇怪了,怎么在ping 0.0.0.0。也许你会说使用

echo off

你可以试一下,这个肯定不可以的,因为echo off只是不要输出你执行的命令而已(在命令前面加@能达到同样的效果),比如

echo off

ping 0.0.0.0  -n 3

echo on

这样的话,ping  0.0.0.0这个命令不会输出了,但是ping的结果同样会输出,是不是就没有办法了?有,使用重定向,就是把ping的结果重定向到文件,

echo off

ping 0.0.0.0  -n 3 > null

echo on

这样就不会有输出了。

 

4.无限循环

一个简单易行的方式:

:loop 
goto loop

参考网上文档:
Using the goto command within a batch allows a user to loop or restart a batch file after it has been completed. Below are some examples of how this command can be used. This page was created with the easiest, but not necessarily recommended solution first, to the most difficult solution but recommended method last.

@echo off
cls
:start
echo This is a loop
goto start

In this first example, the computer will print “This is a loop” over and over until you terminate the file. To cancel this example press: CTRL + C.

@echo off
cls
:start
echo This is a loop
pause
goto start

Next, adding the pause statement before the goto line will prompt the user to press any key before looping the batch file. Adding pause allows the user to run the batch when they’re ready.

@echo off
cls
:start
echo This is a loop
set choice=
set /p choice="Do you want to restart? Press 'y' and enter for Yes: "
if not '%choice%'=='' set choice=%choice:~0,1%
if '%choice%'=='y' goto start

Finally, in this last example and most recommend method, the user would be prompted if they want to rerun the batch file. Pressing “y” would use the goto command and go back to start and rerun the batch file. Pressing any other key would exit the batch file. This example is for Windows 2000, XP, and later users if you’re running earlier Windows 98 or earlier you’d need to use the choice command.

参考文档:http://www.computerhope.com/issues/ch001050.ht

 

参考资料:

https://blog.csdn.net/wh_19910525/article/details/8125762

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

https://www.xuebuyuan.com/1116276.html

http://blog.csdn.net/u010913204/article/details/52701291

最后

以上就是单薄缘分为你收集整理的windows的bat脚本编写#1.注释#2.函数的写法3.延时的写法4.无限循环的全部内容,希望文章能够帮你解决windows的bat脚本编写#1.注释#2.函数的写法3.延时的写法4.无限循环所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部