当前位置:Nanlon > 经验教程 > 正文

NSIS参数传导示例

NSIS参数传导示例:

!include "LogicLib.nsh"

Function .onInit
    InitPluginsDir
    
    # Silent Install
    ${GetParameters} $0
    ${Unless} $0 == ""
        ClearErrors
        ${GetOptions} $0 "/S" $1
        ${If} ${Errors}
        ${Else}
            Call SilentInst
            ClearErrors
            ${GetOptions} $0 "/X" $1
                ${If} ${Errors}
                    Call Optionfalse
                ${Else}
                    Call Optiontrue
                ${EndIf}
        ${EndIf}
    ${EndUnless}
FunctionEnd

Function SilentInst
    # 传入参数"/S",执行静默安装,添加静默安装的内容
    Return
FunctionEnd

Function Optiontrue
    # 静默安装,附加传入参数"/X"时执行的动作
    Return
FunctionEnd

Function Optionfalse
    # 静默安装,无附加参数"/X"传入时执行的动作
    Return
FunctionEnd

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏
作者保留所有权,侵删请联系,转载请注明: » Nanlon » NSIS参数传导示例

评论4

  1. #1

    请教博主一个问题:
    ReadEnvStr $R8 SYSTEMDRIVE
    CreateDirectory “$R8\A”
    RMDir /r “$R8\A”
    我用上面的脚本封包,在系统盘建立文件夹成功,但是卸载时缺无法删除文件夹,是哪里出错了?

    84个月前 (05-27)回复
    • 1、建议你定义一个用户变量而不是使用内置变量(常用于公用函数或宏,当你在公用代码里使用他们的时候不能有任何名字冲突。当在公用代码里使用的时候,推荐你使用堆栈保存和恢复他们原来的数据)
      2、系统根目录文件夹的删除最好不要直接使用 RMDir /r “$R8\A” 这种形式,容易引起误操作;
      3、有时候无法删除可能是文件夹下某文件占用引起。

      Nanlon4个月前 (05-27)回复
      • 好的,谢谢

        84个月前 (05-27)回复
    • Var SYSDRI
      
      ...
      
      ReadEnvStr $SYSDRI SYSTEMDRIVE
      CreateDirectory "$SYSDRI\A"
      
      ...
      
      Delete "$SYSDRI\A\a01"
      Delete "$SYSDRI\A\a02"
      RMDir "$SYSDRI\A"
      
      Nanlon4个月前 (05-27)回复