每个人都说它\
可以像下面这样在内部逃脱reg.exe
:
REG 命令将把 \ 解释为紧随其后的字符的转义符。 来源
但我发现这不是一个完全正确的规则。请看这个例子:
转义字符不起作用:
reg add HKCU\testt /f /v "" /t REG_EXPAND_SZ /d "a\b"
===> a\b
逃离不起作用:
reg add HKCU\testt /f /v "" /t REG_EXPAND_SZ /d "a\\b"
===> a\\b
reg add HKCU\testt /f /v "" /t REG_EXPAND_SZ /d "a\\\b"
===> a\\\b
但当我逃离双引号 “然后逃离将工作:
reg add HKCU\testt /f /v "" /t REG_EXPAND_SZ /d "a\\\"b"
===> a\"b
结论:
\
仅当我转义双引号时才起作用"
更奇怪的是,即使我转义了双引号,转义也不起作用:
reg add HKEY_CURRENT_USER\testt /f /v "" /t REG_EXPAND_SZ /d "a\\ \"b"
===> a\\ "b
这意味着要转义转义符,它必须与转义的双引号相邻!!
这是正确的行为吗?如果正确,在哪里有记录?
这些示例是在 win7 上使用 cmd 完成的。