不能使用reg.exe双引号

时间:2011-03-29 00:57:43

标签: java double quotes

在我的java应用程序中,我通过reg.exe向注册表添加一些值,但我似乎无法获得双引号工作。 我的代码如下所示:

rt.exec("REG ADD HKCU\\Software\\MyApp\\Settings /v myPath /t REG_SZ /d \"C:\\mydir\"");

正如你所看到的,我已经用\“转义双引号但是当我查看注册表时,添加的值没有双引号。任何想法有什么问题?

4 个答案:

答案 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\""");