首页 > 代码库 > DOS批处理

DOS批处理

注释是每个程序中不可或缺的(不是对计算机来说,而是对我们这些程序员阅读代码来说)

语法:

①rem 这是批处理的注释命令,rem后面的内容全部是注释

例:rem 这是一行注释

②:: 批处理遇到以冒号“:”开头的行时(忽略冒号前的空格),并且第二个:不是标签的合法字符(把它换成\;.等等都行),它不被当作一个合法的标签。自己不能被执行,也不能被当做标签(goto语句无法跳转得到),也不会被执行,这样的一行不就跟注释一样么

 

例如下面代码:

echo on
rem this is a comment.
echo this is a comment.
:: this is a comment too.
echo this is a comment too.

运行结果:

F:\tmp>echo on

F:\tmp>rem this is a comment.

F:\tmp>echo this is a comment.
this is a comment.

F:\tmp>echo this is a comment too.
this is a comment too.

 

从【rem this is a comment.】这一句可以看出,rem这是一个命令,但是不做任何处理。

而语句【:: this is a comment too.】没有回显到屏幕上,说明这个不是一个语句,当然也不是一个有效的标签,这里我们就当做是注释。

 

::这个后面真的不是标签么?

我们接下来做一个验证

echo on
goto comment
echo a
echo b
echo c
echo d
::comment
echo the last

运行结果是:

F:\tmp>goto comment
指定されたバッチ ラベルが見つかりません - comment【制定的batch标签未找到 - comment】

所以,::comment不是一个有效的标签,也不是一个有效的语句。哈哈,那这就是有效的注释了。

 

批处理中利用批处理的语法特性,还有一些其他的注释格式,个人不是很喜欢,仅仅是列出来,以望大家参考。

①goto语句和标签的使用,实现块儿注释,就是跳过goto语句和标签之间的内容

echo off
goto comment
commentcommentcommentcomment
commentcommentcomment
commentcomment
comment
:comment
echo the last

执行结果

F:\tmp>echo off
the last

可见,goto语句和标签之间的内容被全部跳过,也不管那些内容是什么,些的对不对。

②%%百分号之间的内容都会帮当做注释的

echo on
echo a
echo %ssss%b
echo c

%%里面的ssss会当做注释给忽略掉,就跟不存在%ssss%这些字符一样。

这种注释你不是看着很眼熟呢?对的,这个本来是用来取变量值的,而由于我们注释的内容,一般是没有被赋值过,也就是说,这个变量的值是空的。所以,运行的时候,就忽略到中间的内容。

看看执行结果就知道了。

F:\tmp>echo on

F:\tmp>echo a
a

F:\tmp>echo b
b

F:\tmp>echo c
c

不过,这个注释是不可以跨行的使用的,还有一点就是,单个出现的%会被忽略,刚才的那个语句如果写成%ssss%%b,黄色标记的%在执行的会被忽略,也就是一行中,如果最后一个%落单后,就会被寂寞的消失在代码的长河中。

 

rem 好了,别的也不废话了,这些注释已经够你用了,就不要再花心了。

 
分类: DOS批处理命令

DOS批处理