gpt4 book ai didi

windows - NSIS 使用 GetParameters 的奇怪行为

转载 作者:可可西里 更新时间:2023-11-01 11:55:13 25 4
gpt4 key购买 nike

我在使用 NSIS 时遇到了一个奇怪的错误:

!include "MUI2.nsh"
!include "FileFunc.nsh" # To use GetParameters

Name nsDialogs
OutFile nsDialogs.exe



Function .onInit
${GetParameters} $R0
MessageBox MB_OK "$R0"
FunctionEnd

!insertmacro MUI_PAGE_WELCOME

Section
DetailPrint "hello world"
SectionEnd

如果我使用这个命令行

nsDialogs.exe /d=hello

消息框如预期的那样显示:“/d=hello”,但如果我使用

nsDialogs.exe /D=hello

消息框显示“”,这是错误的。

为什么会这样?

最佳答案

来自documentation :

/D sets the default installation directory ($INSTDIR), overriding InstallDir and InstallDirRegKey. It must be the last parameter used in the command line and must not contain any quotes, even if the path contains spaces. Only absolute paths are supported.

这意味着您不能将/D 与 ${GetParameters} 一起使用(/S 和/NCRC 也是 NSIS 使用的开关)。 NSIS 按照设计使用/D= 之后的所有内容作为$instdir

检测/D 的唯一方法是不在脚本中使用 InstallDir[RegKey] 并检查 $instdir 是否为 != ""in 。 onInit

关于windows - NSIS 使用 GetParameters 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18999481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com