【问题标题】:Installation directory by command line for installer file安装程序文件的命令行安装目录
【发布时间】:2026-01-14 21:10:01
【问题描述】:

我通过 NSIS 创建安装程序文件。我想通过命令行获取安装目录。 我使用了诸如 /D=E:\ 或 /D=E: 之类的语法,但安装目录发生了任何变化。

【问题讨论】:

    标签: command-line installation nsis


    【解决方案1】:

    使用/D(它必须是命令行上的最后一个标记,并且必须是不带引号的绝对路径):

    MySetup.exe /S /D=C:\Program Files\Foo Bar\Baz
    

    如果您想允许安装到卷的根目录,您需要在脚本中输入 AllowRootDirInstall true

    【讨论】:

      【解决方案2】:

      /D 开关适用于静默安装。

      使用脚本中的 InstallDir 来更改目录。

      【讨论】:

      • /D 将覆盖 InstallDir 和 InstallDirRegKey 并且不仅仅用于静默安装...
      【解决方案3】:

      我创建了卸载程序文件,但卸载程序无法清理文件。

      ExeWait '"$INSTDIR\Farayand\FarayandLibrary\dokanctl.exe" /r a' $0
      RMDir /r $INSTDIR\Farayand\FarayandLibrary
      RMDir $INSTDIR\Farayand
      ${if} ${RunningX64}
         ${DisableX64FSRedirection}
           Delete $SYSDIR\drivers\dokan.sys
         ${EnableX64FSRedirection}
      ${Else}
            Delete $SYSDIR\drivers\dokan.sys
      ${ElseIF}
      

      dokan.sys 卸载时清理了 run.but farayandLibrary 文件夹和文件夹中的内容不会删除。

      【讨论】: