我的bat预处理学习心得,希望对和我一样的菜鸟有用
以下面代码为例子:- @echo off
- setlocal enabledelayedexpansion
- set var=qdj^^
- echo %var%&!var!
-
- pause
复制代码 运行结果是 qdj&qdj^ 为什么会这样呢?
运行 set var=qdj^^后,var就变成了 qdj^ (为什么?看了下面的就知道了。)
因为 echo %var%&!var! 含有感叹号,所以要预处理两次。
第一次:先替换%var% 就变成了 qdj^&!var!,然后进行特殊符号的处理 变成 qdj&!var!,为什么!var!没有处理?因为现在它还是普通的字符串呢。
第二次:先处理特殊符号,由于没有特殊符号,就跳过,然后 替换 !var!
这样就成了 echo qdj&qdj^ 了。 |