如何编写bat文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何编写bat文件
第一节:(主要是一些界面形式功能的实现以及初始化)
1.“@echo off”--我们所写的BAT一开始一般都有这一句,这一句的作用是:使所有的命令响应隐藏。“@”--本行命令不回显
。(本来如果你用echo off就可以了,但是还是能够看到echo off这条命令在CMD下,
影响美观)
2.“color 1e”--设置默认的控制台前景和背景颜色。当前我设为蓝底黄字,具体颜色请在CMD下用“color /?”查询。
--这里又提到了这个参数“/?”,一般CMD下命令后加“/?”就会显示这条命令的帮助。
3.“rem”--注释作用,批处理执行过程中前不执行它,rem 后的字符只作注释作用。
4.“title”--设置命令提示窗口的窗口标题。默认为“cmd”。改成自己喜欢的多有个性,嘿嘿。
5.“cls”--不多说,清屏命令。主要是怕前面的一些空白或字符出现影响美观。
6.“set”--这个命令的作用很大,请用“set /?”查询具体使用方法。本例“settopip=172.16.”是
将一个名为“topip”的变量值设为“172.16.”。注意CMD下变量的设置不区别数字与字符,
能够自动根据提供的值调整。下行“settheip=0.0”同理。
7.“echo .”--在新行中显示一个“.”。echo命令能显示其后的comment。这里提几个有趣实用的用法--“echo.”,注意与前面的不同,“echo”与“.”间无空格。这条命令如同一个回车,在
新行不显示任何信息并换行。“echo ”,实现响铃的提示音。后面一个字符的输入方法是
在CMD下用“ctrl+G”,而这个字符得到的方法是CMD下用命令“echo "ctrl+G" >ex.txt”,
存入ex.txt文件,再从那里提取出来的。嘿嘿,如果你懒得做,就copy我在上面提供的
字符喽。
8.“if”--这条命令也会经常用到,请用“if /?”学习更多信息。本例“if not exist scanipc.exe (echo 文件错误!……)”,实现功能:当同级目录下不存在“scanipc.exe”时,提示“文件错误!……”。否则不提示。“if not exist filename”在批处理中使用比较多些。
9.“:top”,设置一个标志点,标志名为“top”。“:”的作用就是设置标志。网上有文章说“使用"::comment"作为注释比"rem comment"执行效率更高。”我相信,这里也建议大家,如果BAT中注释较多时,请使用“::comment”设置。
10.“set /p pno=”--设置一个变量,并接受用户输入。BAT不需要预先声明变量,只在需要
时设置。参数“/p”:将变量数值设成用户输入的一行输入。
11.“if %pno% gtr 9 gotoonerrorspno”--检验用户输入值是否大于9,是,则转到一个指定标
志点。这里注意BAT中变量引用时要在前后加“%”,但在if语句中可有可无,具体应用
大家多写几遍就有体会。
12.“goto label”--无条件跳转到指定标志位并向后执行。BAT好像只有这么一个跳转语句了,作用不用我说,用了就知道。注意不要构成死循环。
小结:到此,完成了颜色设置、注释版权说明、标题设置、变量初始化、欢迎信息、功能界面初始化、标志点设置(因为欢迎信息只显示一次而功能界面要多次使用所以将标志点设置在欢迎信息的后面。)命令的接受与跳转。
;功能界面一般要用“tab”键调整相对位置,才能起到美观的效果。请多练习几遍领会。
;大家在写脚本过程中要注意标志点的设置位置,才能起到合适的效果。一般写过几个脚本会有些感受。
;接着接受用户输入后“cls”清屏开始执行指定功能。注意这个cls的作用。因为清屏可以
在此时,也可以在每个命令执行之前,但如果在每个命令执行之前用的请,那么要写的
cls就多了,于是把cls写在这里合适,方便节约快捷。大家在写脚本时也应当注意这方面的技巧,将使你写出更加高效节约方便的代码。在每次写完脚本后合理地整合一下自己的代码。能积累不少经验。
;另外,鉴于部分人仍不知道如何建立BAT文件与运行,请:打开记事本,写入代码,
保存,保存类型为“所有文件*.*”,文件名为“name*.BAT”。保存后,双击运行。因为一般BAT运行很快,所以你可能只看到窗口一闪就消失了,那么你可以在exit之前加pause确
保能看见运行结果。
到此,你应该能够写一个很简单的脚本了,实现一些界面控制。
例1:
@echo off
color ca
title 这是我第一个BAT脚本。
echo这是我第一个BAT脚本。不错啊。
pause>nul
exit
第二节:(提一些好用的命令)
以下设置的都是功能段,在“gotostep%pno%”跳转到相应功能段后,开始执行相应功能。
一般命令段:
step1:ping命令。(在echo中变量的引用请注意前后加“%”号,否则会导致程序出错。)我们常用的ping命令:其实很简单,自己看帮助啦。
本句“ping %topip%%theip% -n 1 |findstr 100%>nul”将ping 只发送一次数据包,这样命令执行起来就快多了,但这样所会引起一定概率的误判,而我们在内网这种概率很低,低到可以忽略。所以本人使用参数“-n 1”减少执行时间。将结果不回显而通过管道命令“|”送给findstr分析,findstr查找是否存在“100%”,并将回显“丢弃”--“>nul”。因为如果ping一台
主机如果返回的结果有“100%”存在说明“不在线。或者有防火墙阻挡。”。所以用findstr
确定字符串“100%”的存在性,因为findstr也有回显,但我们并不需要,所以将它“丢弃”,使用参数“>nul”将指定命令回显丢弃。(这一句命令是重点,请仔细领会。)
又因为findstr确定指定字符串的存在性后会设定环境变量“errorlevel”的值,所以我们根据“if %errorlevel% equ 0(command)”,判断findstr的执行结果就行了,也就不需要有回显。“errorlevel”作用很大,一般命令行下的命令执行后都有一个特别的errorlevel,我们就可以