在我的java应用程序中,我通过reg.exe向注册表添加一些值,但我似乎无法获得双引号工作。 我的代码如下所示:
rt.exec("REG ADD HKCU\\Software\\MyApp\\Settings /v myPath /t REG_SZ /d \"C:\\mydir\"");
正如你所看到的,我已经用\“转义双引号但是当我查看注册表时,添加的值没有双引号。任何想法有什么问题?
答案 0 :(得分:2)
cmd.exe
shell为您“帮助”剥离引号字符。这与Java或reg.exe
无关。
This answer对类似问题可能对您有所帮助。
此外,您应该考虑使用ProcessBuilder
而不是Runtime.exec()
。
答案 1 :(得分:0)
您可以尝试使用所需的注册表值创建临时文件,并以此方式添加。 REG IMPORT将为您完成工作,除了文件名中有空格的情况外,您不必担心引号。
答案 2 :(得分:0)
双引号不应出现在注册表项中。双引号被commadn行处理吃掉。
答案 3 :(得分:0)
在这种情况下,您应该添加其他引号:
rt.exec("REG ADD HKCU\\Software\\MyApp\\Settings /v myPath /t REG_SZ /d "\"C:\\mydir\""");