在我的Java应用程序中,我通过reg.exe向注册表添加了一些值,但我似乎无法得到双引号的工作。 我的代码如下所示:不能使用reg.exe的双引号
rt.exec("REG ADD HKCU\\Software\\MyApp\\Settings /v myPath /t REG_SZ /d \"C:\\mydir\"");
正如你可以看到我已经逃脱了双引号\”但是当我查看增值没有双引号对注册表进行任何想法有什么错
在我的Java应用程序中,我通过reg.exe向注册表添加了一些值,但我似乎无法得到双引号的工作。 我的代码如下所示:不能使用reg.exe的双引号
rt.exec("REG ADD HKCU\\Software\\MyApp\\Settings /v myPath /t REG_SZ /d \"C:\\mydir\"");
正如你可以看到我已经逃脱了双引号\”但是当我查看增值没有双引号对注册表进行任何想法有什么错
双引号不应出现在注册表项中。 commadn行处理消耗双引号。
您可以尝试使用所需的注册表值创建一个临时文件,并以此方式添加它。REG IMPORT将为您完成这项工作,除了文件中有空格的情况外,您不必担心引号
cmd.exe
外壳是“帮助”剥离你的引用字符。与Java或reg.exe
无关。
This answer到类似的问题可能会对您有所帮助。
此外,你应该看看使用ProcessBuilder
而不是Runtime.exec()
。
在这种情况下,你应该添加额外的报价:
rt.exec("REG ADD HKCU\\Software\\MyApp\\Settings /v myPath /t REG_SZ /d "\"C:\\mydir\""");
+1 - 您的建议使用的ProcessBuilder。 – 2011-03-29 02:06:30