我如何创建一个在参数字符串中有双引号的7-zip SFX安装程序



我需要创建一个运行名为Deploy-Application.exe文件的安装程序。exe的参数如下所示:

Deploy-Application.exe -DeploymentType "Uninstall"

当我把它放在我的配置文件中,它不起作用,因为Sfx模块认为我的参数只是

-DeploymentType 

因为双引号。对于7-zip SFX模块的双引号是否有一个转义字符?就算有,我也找不到!

这是我的配置文件:

;!@Install@!UTF-8!
Title="test"
Progress="No"
ExecuteParameters="-DeploymentType "Uninstall""
RunProgram="Deploy-Application.exe"
;!@InstallEnd@!

EDIT:事实证明,Deploy-Application.exe确实需要在参数周围引号。我只是通过cmd运行它来测试它,像这样:

Deploy-Application.exe -DeploymentType Uninstall

,它工作得很好。但是,当我有一个像这样的配置文件时:

;!@Install@!UTF-8!
Title="test"
Progress="No"
ExecuteParameters="-DeploymentType Uninstall"
RunProgram="Deploy-Application.exe"
;!@InstallEnd@!

仍然不工作。参数被忽略,我用ProcessExplorer验证了这一点,Deploy-Application.exe启动时没有参数。

使用forward来转义它们

一样
"""  --> "
EG: ExecuteParameters="-DeploymentType "Uninstall""

ref

好吧,事实证明它与引号或其他东西无关。在阅读了第100次LZMA SDK附带的installer.txt文档后,我意识到'ExecuteParameters'不适用于'RunProgram',它只适用于'ExecuteFile'。

下面是如何使用"Run Program"的参数

RunProgram="notepad.exe"
RunProgram="C:\Windows\system32\notepad.exe"
RunProgram="%Path%\notepad.exe"
RunProgram="fm0:nowait:7z_EN.chm"
RunProgram=""%%T\Reader7Rus.msi" /qn"
RunProgram="hidcon:fm0:"%%S\install.cmd" /Q"

来自我没有仔细阅读的文档:

ID_String          Description 
Title              Title for messages 
BeginPrompt        Begin Prompt message 
Progress           Value can be "yes" or "no". Default value is "yes". 
RunProgram         Command for executing. Default value is "setup.exe". 
                   Substring %%T will be replaced with path to temporary 
                   folder, where files were extracted 
Directory          Directory prefix for "RunProgram". Default value is ".\" 
ExecuteFile        Name of file for executing 
ExecuteParameters  Parameters for "ExecuteFile" 

相关内容

  • 没有找到相关文章

最新更新