- 帖子
- 473
- 积分
- 3367
- 技术
- 7
- 捐助
- 0
- 注册时间
- 2009-2-4
|
17楼
发表于 2009-3-27 09:32
| 只看该作者
这样说吧,其实大家都没有认真去看帖子也没有认真的当回事来想。也怪我自己对问题陈述不清楚吧。
首先在开启变量延迟的情况下,代码如果这样:echo !^^^^^>,第一次预处理后得到echo !^^>,这一步好理解。接下来呢,就出现不同的解释:1.第一个^被忽视,抛弃,就是说上面第一步得到的结果中的第二个与>经过第一预处理后都被当成普通字符显示,第一个^被丢掉;2.照非常批处理里面一个人对英雄帖子的回复说法来看,预处理是从左至右逐个处理字符的,那么势必第一个^转义第二个^得到一个^,后面的>咋办,它落单了,是抛弃还是直接当作普通字符显示? 3.基于第二种情况和最终的显示结果,>没有被抛弃,那就说明它经过第一次预处理之后就被当作了普通字符,可是这样的话又矛盾了,它前面的俩^不都是经过第一次预处理以后得到的么?那也应该被当作普通字符一块显示出来才对啊?除非^相比>或者其他特殊字符更特殊,有更蹊跷而独特、专有的法则。
第一次预处理后得到echo !^^>,再预处理执行以后就显示^>,但是如果我们就直接输入命令echo !^^>回车的话就提示命令格式不对。it doesn't make sense.
还请各位大侠多多释疑,小弟在此感激涕零。
[ 本帖最后由 Lumiere 于 2009-3-27 10:05 编辑 ] |
|