Добавление раздела реестра в windows с кавычками, необходимыми в данных, с помощью пакетного сценария
здесь Уиллис. Я пытаюсь использовать пакетный скрипт для редактирования существующего раздела реестра ,который используется при двойном щелчке.файл jar. Проблема в том, что данные, которые я пытаюсь ввести, содержат кавычки, но мне также нужны кавычки, чтобы они считались строкой.
пример:
reg add "HKEY_LOCAL_MACHINESoftwareClassesjarfileshellopencommand" /v "" /t REG_EXPAND_SZ /d "C:Program FilesJavajre7binjavaw.exe" -jar "%1" %* /f
когда я запускаю это в пакетном скрипте, окно cmd выводит "ошибка: слишком много параметров командной строки"
Итак, чтобы сделать это простым. Я хочу добавить реестр ключ с "C:Program файлыJavajre7binjavaw.exe "- jar "%1 " % * как данные, включая котировки и %1 и %* точно так же, как они не преобразуются в какой-либо фактический оператор или строку.
EDIT:
реестр обычно добавляется с помощью этой строки командной строки:
ftype jarfile="C:Program FilesJavajre7binjavaw.exe" -jar "%1" %*
Он отлично работает в командной строке, но так же, как и приведенный ниже код, когда я использовал его в пакетном скрипте, "%1" и %* не отображаются.
4 ответов
используйте обратные косые черты, чтобы избежать внутренних кавычек, т. е.:
reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "\"C:\Program Files\Java\jre7\bin\javaw.exe\" -jar \"%1\" %*" /f
в дополнение к dbenham'ы ответ, вы должны использовать backslaches и котировки пути !!
(Я имею в виду, вы должны использовать "\"C:\Program Files.....
вместо "C:\Program Files.....
)
Итак, это окончательный ответ для типичного знака процента &
добавляя проблема:
reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "\"C:\Program Files\Java\jre7\bin\javaw.exe\" -jar \"%%1\"" /f
спасибо dbenham!
Другой альтернативой является использование одинарных кавычек, некоторые приложения могут читать его правильно, например:
reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "'C:\Program Files\Java\jre7\bin\javaw.exe\' -jar '%1' %*" /f