Добавление раздела реестра в 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

процентные литералы должны быть удвоены в пакетном файле:\"%%1\" %%*"


в дополнение к 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