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

[注册表类] reg add 中\作为转义字符为什么“时灵时不灵”

http://bbs.bathome.net/viewthrea ... muid=30829#pid82539
  1. reg add "HKEY_LOCAL_MACHINE\SOFTWARE\hello" /v world /t reg_sz /d "c:\hello world\\" /f
复制代码
我仔细想想,还有个问题,如果\是转义字符的话,为什么
c:\hello world\\ ,hello前面的\没有消失?
echo ^hello 显示的结果是hello——^消失了。——这说明转义过程中即便是不需要转义的符号,还是会得到转义(致使转义字符消失),那么为什么hello前面的\没有消失?

还有就是,如果说"可以转义后面的内容,为什么"c:\hello world\" 最后一个"会被\转义(你尽然作为转义字符,自然可以把特殊符号转义为普通字符)——难道说\的优先级大于"——如果大于,那出现的情况就是不管你加不加",\都会消失(转义了)。
所以我总觉得在reg命令中 \是转义字符的说法有欠考究——因为前后矛盾,难以自圆其说。

2# zm900612
恩,两者的作用范围不同。
那你能解释一下,我提出的那些问题吗?——我觉得很疑惑。

TOP

5楼提到了特定字符,6楼更进一步,\只转义"
暂时这么理解吧,以后发现新问题再来探讨。

TOP

不对不对,6楼的说法不对,如果\只转义"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\hello" /v world /t reg_sz /d "c:\hello world\\" /f
得到的结果却是 c:\hello world\,这说明\转义了\。
还是觉得5楼的靠谱,虽然特定字符太笼统了。

TOP

返回列表