对于转义字符^的讨论
bat吧
全部回复
仅看楼主
level 3
飞狼队2号 楼主
下面给出两个小批处理
1:
@echo off & setlocal enabledelayedexpansion
echo ^^!
pause
2:
@echo off & setlocal enabledelayedexpansion
echo ^!
pause
对于第一个,运行结果是一个!,而第二个程序则显示echo处于关闭状态,这是为什么
2015年05月15日 09点05分 1
level 15
听说批处理文件中某些地方有二次转义的特性,需要前面一个转义符先转义后一个转义符。
2015年05月15日 11点05分 2
level 14

!在预处理的时候,只是一个普通符号,不会被处理,此时转义的话没有用处
详细:
^!
经过预处理变成了!
,然而^
转义的只是作为一个普通符号的!
,因而在真正执行的时候!
仍然被当作了特殊符号进行处理
^^!
经过预处理变成了^!
,因为第一个^
转义了后面的^
,取消了第二个^
的特殊符号身份,因而第二个^
得以保留下来,在真正执行时后发挥转义符号的力量将!
真正转义为普通符号
2015年05月15日 13点05分 3
2015年05月15日 13点05分
1