zoukankan      html  css  js  c++  java
  • NSIS 打包

    1.在移动目标和来源在同一分区(如都在C盘)是可以用 Rename语句 和 执行命令行Move 实现

    Rename例子:

    "Test.EXE"
    Name "Test"
    Section
     Rename  C:\Program Files\Test.txt" "C:\Test.txt"
    SectionEnd

    2.在不同分区可以使用命令行的Move命令:

    OutFile  "Test.EXE"
     Name  "Test"
    Section
    nsExec::ExecToLog  'cmd /c move "C:\Test.txt" "D:\Test.txt"'
    SectionEnd

    3、补充一个差不多的
    delete + copyfiles 
    delete "$INSTDIR\1.txt"
    copyfiles $EXEdir 1.txt $INSTDIR
    先删除安装目录下的1.txt,再从脚本当前目录copy到安装目录. 

    4、# 静默卸载旧版本并等待它完成后才继续
    ExecWait '"$INSTDIR\uninstaller.exe" /S _?=$INSTDIR'

    5、删除目录 RMDir
    [/r] [/REBOOTOK] 目录名
    删除指定的目录(没有通配符的完整路径)。没有 /r 参数时只有在目录为空时才会被删除。如果指定了 /r ,则目录会被递归删除,所以在指定目录下的所有文件和目录均被删除。如果指定了 /REBOOTOK ,任何当前不能删除的文件或目录将会在重启后被删除 -- 如果文件或目录需要在重启时被删除,会放置一个重启的标记。当文件或目录不能被删除时放置一个错误的标记。

    RMDir $INSTDIR
    RMDir $INSTDIR\data
    RMDir /r /REBOOTOK $INSTDIR
    RMDir /REBOOTOK $INSTDIR\DLLs
    需要注意的是当前的工作目录不能删除。当前的工作目录由 SetOutPath 设定。例如,下面的例子将不能删除该目录。

    SetOutPath $TEMP\dir
    RMDir $TEMP\dir
    而下面的例子将成功地删除该目录。

    SetOutPath $TEMP\dir
    SetOutPath $TEMP
    RMDir $TEMP\dir
    警告: 在卸载程序中使用 RMDir /r $INSTDIR 是不安全的。虽然用户不太可能会选择将程序安装到 Program Files 文件夹中,但假如这样的话,这个命令将会递归删除整个 Program Files 文件夹,包括其他和卸载程序没有任何关系的程序(目录)。用户还可以安装除了程序文件之外的其他文件并希望它们能被卸载程序删除。可用的 解决方案 可以轻松地实现只卸载由安装程序释放的唯一文件。


    6、http 下载文件 举例:


    Section Install
    NSISdl::download
    /TRANSLATE2 '正在下载 %s' '正在连接...' '(剩余 1 秒)' '(剩余 1 分钟)' '(剩余 1 小时)' '(剩余 %u 秒)' '(剩余 %u 分钟)' '(剩余 %u 小时)' '已完成:%skB(%d%%) 大小:%skB 速度:%u.%01ukB/s' /TIMEOUT=7500 /NOIEPROXY 'http://dl_dir.qq.com/invc/tt/tt4.8setupv892.exe' '$EXEDIR\tt4.8setupv892.exe'
    Pop $R0
    StrCmp $R0 "success"
    0 +3
    MessageBox MB_YESNO|MB_ICONQUESTION "TT4.
    8 已成功下载至:$\r$\n$\t$EXEDIR\tt4.8setupv892.exe$\r$\n是否立即执行安装程序?" IDNO +2
    ExecWait
    '$EXEDIR\tt4.8setupv892.exe'
    SectionEnd




    返回导读目录,阅读更多随笔



    分割线,以下为博客签名:

    软件臭虫情未了
    • 编码一分钟
    • 测试十年功


    随笔如有错误或不恰当之处、为希望不误导他人,望大侠们给予批评指正。

  • 相关阅读:
    配置Nginx和Apache允许指定域名CORS跨域访问
    当遇到npm ERR! Unexpected end of JSON input while parsing near……时的解决办法
    基于thinkphp开发的项目部署到由宝塔面板创建的LNMP服务器上解决路径出错问题
    在ThinkPHP框架(5.0.24)下引入Ueditor并实现向七牛云对象存储上传图片同时将图片信息保存到MySQL数据库,同时实现lazyload懒加载
    为Sublime Text 3设置优雅的字体
    windows7x64系统中配置mysql5.7.17为本地开发环境(win2008类似)
    SQL Server实现数据的递归查询
    在.net程序中使用System.Net.Mail来发送邮件
    在 Ubuntu 13.10 中搭建Java开发环境
    Windows 系统下载安装 ZooKeeper
  • 原文地址:https://www.cnblogs.com/08shiyan/p/2013557.html
Copyright © 2011-2022 走看看