[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
9# abcdshenji

很老的文章了,出自英雄的教程。

楼上的不必纠结,所谓预处理是个很笼统的概念,误导性很强。

我个人认为,对功能性符号的解析(即解释其特殊功能)是分阶段的。

第一个阶段是全局性的,只解释几个特定的符号,比如%,^等,这个发生在命令运行之前。

第二个阶段的解析是用命令自行触发的,这个阶段要处理的内容很多,又可以分为多个层次。
有对通用特殊符号的解析,比如| & &&,> >> <等。
有对专用特殊符号的解析,比如set /a的数学运算符。
开启变量延迟后会解析!,call命令还会再次解析%和^。

TOP

本帖最后由 applba 于 2011-6-6 16:56 编辑

关于“预处理”不能简单的归结为一次两次,其实有很多次的,每一次处理的内容都不完全相同,甚至完全不同。
预处理过程包含对特殊字符的解释、参数的识别等,其中特殊字符的解释又包含了变量的替换(微软件扩展)。


第一阶段预处理发生在cmd.exe读取时,是无条件进行的,此时命令还没有被识别出来。
第二阶段处理发生在命令被执行时,是由具体的命令进行,这个阶段的处理有很强的针对性。

这两个阶段的预处理内容可是比较复杂的,每一个阶段又可以划分为很多层次。
还有第一阶段处理的某些内容第二阶段会重复处理,或者第一阶段没有处理的第二阶段会接着处理。

好吧,也许我所说的只有我自己能理解。
其实我也是个新人。

TOP

这个东西不必过于钻死胡同,适度了解一下就可以了。

TOP

返回列表