从另一个帖子转过来的,同样的一条命令,在后开启了变量延迟的情况下,输出正确的结果;
但在未开启变量延迟的情况下,报错,这就是预处理吗?- set "var=|"
- echo %var%
- pause
复制代码 再如下:- set "var=|"
- setlocal enabledelayedexpansion
- echo %var%
- pause
复制代码 例1在第一行添加 %1 cmd /k %0 : 可以看到报错信息。
同样的一条set "var=|" 命令,却有两条不同的结果,这个结果是由后面的代码所决定的。
预处理 = = ,解释器先扫描整个批处理脚本,如果发现语法错误,便提示报错,或者退出批处理脚本,如果一切正常,那便自上而下,逐条执行。
但预处理应该不是自上而下的,而是对当前脚本代码进行的综合分析。 |