如何设置NSIS卸载程序的选项

如何设置NSIS卸载程序的选项,nsis,Nsis,我有一个NSIS安装与一些选项,这是非常好的工作。但是我的“-quiet”选项不适用于卸载程序 uninst: ClearErrors ${getOPtions} $CMDLINE "--quiet" $0 ${IfNot} ${Errors} StrLen $2 "\Uninstall.exe /S" ${Else} StrLen $2 "\Uninstall.exe" ${EndIf}

我有一个NSIS安装与一些选项,这是非常好的工作。但是我的“-quiet”选项不适用于卸载程序

        uninst:
          ClearErrors
${getOPtions} $CMDLINE "--quiet" $0
${IfNot} ${Errors}
          StrLen $2 "\Uninstall.exe /S"
        ${Else}
          StrLen $2 "\Uninstall.exe"
    ${EndIf}
          StrCpy $3 $0 -$2 # remove "\Uninstall.exe" 
          ExecWait '$0 _?=$3' ;Do not copy the uninstaller to a temp file`

GetOptions希望您调用GetParameters来获取参数,而不是$CmdLine:

!include FileFunc.nsh
!include LogicLib.nsh

...

${GetParameters} $1
ClearErrors
${GetOptions} $1 "--quiet" $2
${IfNot} ${Errors}
    MessageBox mb_ok "Quiet mode"
${EndIf}
ExecWait“\Uninstall.exe/S”
永远无法工作,\Uninstall.exe意味着在当前驱动器的根目录下卸载.exe。您必须使用完整路径,它应该如下所示:

StrCpy $0 "$ProgramFiles\my app" ; TODO: Get the old install path
StrCpy $1 "/S" ; TODO: Set optional parameters
ExecWait '"$0\Uninstall.exe" $1 _?=$0'

而不工作意味着什么?GetOptions失败还是ExecWait失败?命令
“\Uninstall.exe/S”
从未执行过,因此我认为GetOptions失败了。最后,我在部分中尝试了
ExecWait”\Uninstall.exe/S“
,但出现了错误,卸载失败