2011-03-29 28 views
0

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

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

正如你可以看到我已经逃脱了双引号\”但是当我查看增值没有双引号对注册表进行任何想法有什么错

回答

0

双引号不应出现在注册表项中。 commadn行处理消耗双引号。

0

您可以尝试使用所需的注册表值创建一个临时文件,并以此方式添加它。REG IMPORT将为您完成这项工作,除了文件中有空格的情况外,您不必担心引号

2

cmd.exe外壳是“帮助”剥离你的引用字符。与Java或reg.exe无关。

This answer到类似的问题可能会对您有所帮助。

此外,你应该看看使用ProcessBuilder而不是Runtime.exec()

+0

+1 - 您的建议使用的ProcessBuilder。 – 2011-03-29 02:06:30

0

在这种情况下,你应该添加额外的报价:

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