Не могу использовать двойные кавычки с reg.exe - PullRequest
0 голосов
/ 29 марта 2011

В моем приложении Java я добавляю некоторые значения в реестр через reg.exe, но я не могу заставить работать двойные кавычки.Мой код выглядит так:

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

Как вы можете видеть, я уже избежал двойных кавычек с \ ", но когда я просматриваю реестр, добавленное значение не имеет двойных кавычек. Любая идея, что не так?

Ответы [ 4 ]

2 голосов
/ 29 марта 2011

Оболочка cmd.exe - это «полезные» символы для кавычек для вас. Это не имеет ничего общего ни с Java, ни с reg.exe.

Этот ответ на похожий вопрос может быть полезен для вас.

Кроме того, вы должны использовать ProcessBuilder вместо Runtime.exec().

0 голосов
/ 25 апреля 2012

В этом случае вы должны добавить дополнительные цитаты:

rt.exec("REG ADD HKCU\\Software\\MyApp\\Settings /v myPath /t REG_SZ /d "\"C:\\mydir\""");
0 голосов
/ 29 марта 2011

Двойные кавычки НЕ должны появляться в записи реестра. Двойные кавычки съедаются обработкой строки commadn.

0 голосов
/ 29 марта 2011

Вы можете попробовать создать временный файл с нужным вам значением реестра и добавить его таким образом. REG IMPORT сделает всю работу за вас, и вам не нужно беспокоиться о кавычках, за исключением случая, когда в имени файла есть пробел.

...