如何在Inno Setup中处理带空格的路径?

时间:2017-11-14 08:51:50

标签: windows inno-setup nssm

我希望允许带有空格的路径(感谢Microsoft,教育每个人程序实际上是“程序文件”!)在使用Inno Setup安装我的程序时。但是,带空格的路径会使我安装的服务崩溃。

Inno Setup文件如下所示:

[Setup]
AppName=Demo
DefaultDirName={pf}\demo

[Files]
Source: "bin\nssm.exe"; DestDir: "{app}"
Source: "bin\jdk1.8.0_152\jre\*"; DestDir: "{app}\jre"; Flags: recursesubdirs
Source: "build\libs\demo.jar"; DestDir: "{app}"

[Run]
Filename: "{app}\nssm.exe"; Parameters: "install demo ""{app}\jre\bin\java.exe"" -jar ""{app}\demo.jar"""
Filename: "{app}\nssm.exe"; Parameters: "start demo"

“nssm.exe”是一个服务包装器,用于将java应用程序作为Windows服务执行。

这一部分就是这条线:

Filename: "{app}\nssm.exe"; Parameters: "install demo ""{app}\jre\bin\java.exe"" -jar ""{app}\demo.jar"""

正如本question/answer所示,我尝试使用双引号,但这没有帮助,服务仍在崩溃。如果我将DefaultDirName更改为没有空格的路径,则一切都按预期工作。

DefaultDirName=c:\demo

如何处理带空格的路径?

1 个答案:

答案 0 :(得分:4)

问题是Inno Setup和nssm的组合,两者都是双引号的双引号。这需要多个双引号。

解决方案:

Filename: "{app}\nssm.exe"; Parameters: "install demo ""{app}\jre\bin\java.exe"" -jar """"""{app}\demo.jar"""""""

请参阅nssm documentation部分"报价问题"。

相关问题