【发布时间】:2014-06-19 18:51:50
【问题描述】:
我使用 NSIS 安装程序创建简单的脚本来安装 Java JAR 文件并在 Windows 中创建一个桌面链接来执行 JAR 文件。用户选择安装目录(包括路径中可以包含空格的 JAR 文件的位置)。
但是,如何根据用户的安装目录使用 NSIS 脚本转义 JAR 文件位置或将其放在引号中?
例如,桌面链接可能需要:
C:\Windows\system32\java.exe -jar "D:\Me\Test PPP Install\PPP_Winx64_1.jar"
(注意需要引号,以便 Java 正确处理 -jar 参数。)
在我的 NSIS 脚本中,我使用如下内容:
createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "java" " -jar $INSTDIR\${PPPJAR}" "$INSTDIR\${PPPICON}"
(这会创建带有附加图标属性的链接。)
我尝试转义
中的引号"\" -jar $INSTDIR\${PPPJAR}\""
和
"" -jar $INSTDIR\${PPPJAR}""
和
" -jar $\"$INSTDIR\${PPPJAR}$\""
和
' -jar "$INSTDIR\${PPPJAR}$"'
但没有一个有效——NSIS 编译器要么失败,前两个,要么生成的快照省略了所需的引号(最后一项)。
我已经搜索过其他示例,但都使用非空格路径——但这并不实用,因为用户需要能够指定安装目录。
因此,如何使用 NSIS 脚本将 JAR 文件的路径属性放在引号中?
【问题讨论】:
标签: nsis