批处理中,添加注册表值,值中带引号如何处理

简单例子
reg add "HKEY_CURRENT_USER\123" /v "123" /t reg_sz /d "cmd.exe /c takeown /f "%1" && icacls "%1" /grant administrators:F" /f
其中【cmd.exe /c takeown /f "%1" && icacls "%1" /grant administrators:F】是我想修改的值,但是其中带有带引号的参数"%1",导致语句/d "XXX"无法正确导入注册表值,该如何编写这条语句。
是键值不是键名

第1个回答  2014-10-03

用右斜杠处理这个问题:

reg add "HKEY_CURRENT_USER\123" /v "123" /t REG_SZ /d "cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" /f

追问

我也发现了,当我先在注册表中输入完毕,然后导出编辑时,发现注册表也是这么处理的。但是用批处理导回去是这个样子

其中参数%1消失了,只剩下引号了。


导出之前是这个样子

,我都没有修改值的内容,只是套用批处理语法导回去而已。

导出来再导回去怎么会不一样。。。

追答

%1参数又是另外一个问题:

reg add "HKEY_CURRENT_USER\123" /v "123" /t REG_SZ /d "cmd.exe /c takeown /f \"%%1\" && icacls \"%%1\" /grant administrators:F" /f

本回答被提问者和网友采纳
相似回答