cmd语法中的空格

来源:互联网 发布:软件开发实施方案范文 编辑:程序博客网 时间:2024/06/10 15:18

写bat脚本的时候,第一感受就是很多地方需要空格,很多地方又不能有空格,那么到底遵循的是怎样的规则?原因又是什么?

从bat中if的用法说起

bat中一般都在if表达式中进行。看if的表达式有如下几个用法:
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
从中也很清楚标记出哪些有空格,哪些没有。if用法中有一条说明:
else 子句必须和if之后出现在同一行上。例如:
IF EXIST filename. (
del filename.
) ELSE (
echo filename. missing.
)
这是为什么?我是这样理解的,if-else语句本身的语法就是
if compare command else command,这里的command必须是一个整体command作为整体可以有换行符,但是if语法结构上不能有换行。
也就是if compare command else command 这个语句中不能有换行。
上面出现的换行其实是command内部的换行。

边解释变执行

脚本一般都解析一部分代码,然后执行。边解析边执行并不是解析一行执行一行。比如这样的代码如果只是解析并执行一行的话,估计是没问题的:
if "%1"=="" ( echo no param
但是实际解析器必须先找到下一个”)”才认为语法通过。所以当脚本没有参数输入时,并不会答应 no param。

0 0