DOS批处理

Posted Leo_wlCnBlogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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之chcp命令

地址的奇怪错误

bat-批处理--dos----wmic命令

在 DOS 批处理文件中注释多行

C# 执行DOS命令和批处理

DOS批处理