使用批处理脚本在Windows中添加一个注册表项,其中包含数据中所需的引号

Tre*_*rey 9 windows batch-file registrykey double-quotes

小维利斯在这里.我正在尝试使用批处理脚本编辑双击.jar文件时使用的现有注册表项.问题是我试图输入的数据包含引号但我还需要引号才能将其视为字符串.

例:

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
Run Code Online (Sandbox Code Playgroud)

当我在批处理脚本中运行它时,cmd窗口打印出"错误:命令行参数太多"

所以要做到这一点很简单.我想添加一个注册表项,其中包含"C:\ Program Files\Java\jre7\bin\javaw.exe"-jar"%1"%*作为包含报价和%1和%*的数据完全相同没有转换为任何实际的语句或字符串.

编辑:

通常使用此命令行字符串添加注册表:

ftype jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*  
Run Code Online (Sandbox Code Playgroud)

它在命令行中工作正常,但正如下面给出的代码,当我在批处理脚本中使用它时,"%1"和%*不会出现.

Mar*_*arc 17

使用反斜杠来转义内部引号,即:

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
Run Code Online (Sandbox Code Playgroud)


dbe*_*ham 12

在批处理文件中,百分比文字必须加倍: \"%%1\" %%*"