原文 NSIS:IfFileExists+Goto实现简单跳转

在用户手册中有相关示例,但也许有的同学没有发现,那么我再发一个,仅供入门学习参考。

IfFileExists
要检测的文件 文件存在时跳转的标记 [文件不存在时跳转的标记]
检测 "要检测的文件" 是否存在(可以用通配符,或目录),并当文件存在时跳转到 "文件存在时跳转" ,否则跳转到"文件不存在时跳转" 。
 
Goto
要跳转的标记 | +偏移| -偏移| 用户变量(目标地址)
如果指定了标记,则跳转到“要跳转的标记”。
如果指定了 "+偏移" 或 "-偏移" ,跳转会根据偏移指令相对的跳转。 Goto +1 跳转到下一条指令,Goto -1 跳转到上一条指令,等等。
如果指定了用户变量,则跳转到绝对地址(通常你可以从一个函数,比如 GetLabelAddress)。编译器标记命令和 SectionIn 不是指令,所以跳转对它们无效。
 
01 Name "跳转示例"
02 Caption "$(^Name)"
03 OutFile "跳转.exe"
04 SilentInstall silent
05 XPStyle on
06  
07 Section
08   IfFileExists $WINDIR\notepad1.exe 0 +5  ;不存在则向下跳转到第5行
09   MessageBox MB_OK "1有记事本"
10   MessageBox MB_OK "2"
11   MessageBox MB_OK "3"
12   MessageBox MB_OK "4"
13   MessageBox MB_OK "5没记事本"
14   Goto +2  ;向下跳转到第2行,也就是7这一行
15   MessageBox MB_OK "6"
16   MessageBox MB_OK "7"
17   MessageBox MB_OK "8"
18   MessageBox MB_OK "9"
19 SectionEnd

NSIS:IfFileExists+Goto实现简单跳转的更多相关文章

  1. 简单跳转到微信分享,基于libWeiChatSDK 和简单的自定义UIActivityViewController

    一.自定义UIActivity: 如果想要自定义UIActivity必须知道UIActivityViewController.首先这个类主要是用于接受字符串,RUL类型和图片类型的数据用于分享和操作的 ...

  2. C语言 goto, return等跳转

    C语言 goto, return等跳转 Please don't fall into the trap of believing that I am terribly dogmatical about ...

  3. Android学习笔记(七)两个Fragment简单跳转示例

    在前两篇博文中分别介绍了Fragment得基础和Fragment的生命周期,然而说了这么多Fragment到底怎么用呢以及我们为什么要使用Fragment?本篇博文将主要探讨这两个问题,首先说下在AP ...

  4. PHP的简单跳转提示的实现

    在PHP开发中,尤其是MVC框架或者项目中,会碰到很多跳转情况,比如:登录成功或失败后的跳转等等. 以下以MVC框架开发中为基础,示例讲解: 在基础控制器类中:Conrtoller.class.php ...

  5. 06 、指令跳转:原来if...else就是goto

    写好的代码编译成指令之后,一般正常流程是一条一条的顺序执行的.但是在程序中总会用到if...else这样的条件判断语句.while和for循环语句,还有函数或者过程调用,所以遇到这些程序编译的指令时是 ...

  6. 跳转语句 break;continue; return; goto 区别用法

    C语言是按顺序执行语句的语言——一个接一个.即使它有条件语句或循环语句,程序的流程也是自上而下的.没有顺序流的随机跳转或跳转.但我们的程序是为了满足任何现实世界的需求,一个接一个地执行永远不会很直接. ...

  7. 跳过nsis Error强制运行程序

    NSIS编译的程序在运行之初,都会有一个程序完整性的自我检测,一旦检测到数据不完整,比如文件资源被篡改,下载过程中有数据丢失等情况,就会报错停止运行,也就是大名鼎鼎的nsis Error  ,其实想跳 ...

  8. NSIS 打包脚本基础

    简介 NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序.它提供了安装.卸载.系统设置.文件解压缩等功能.这如其名字所 ...

  9. 简单bat语法

    一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置. 语法 echo [{on off}] [message] ...

随机推荐

  1. leetcode先刷_Binary Tree Level Order Traversal II

    非常easy标题,在后面,我不认为它不是那么简单的回答更多的.我们将编写,没有人啊. 预购在基层上,加上节省每一层,加上从下往上的输出,是一家vector而一个stack那么问题,没有他,但另一方面- ...

  2. POJ 1274 The Perfect Stall 水二分匹配

    主题链接:id=1274">点击打开链接 呵呵 #include<cstdio> #include<cstring> #include<cstdlib&g ...

  3. oracle一个用户密码管理多达同意三次企图登录

    假设一个用户登录连续失败三次.两日,锁定用户,两天后再次登录的用户的能力. 创建profile文件: 更新账户: 三次登录失败后用户就会被锁定: 用户锁住之后要怎么给他解锁: 解锁之后就能够正常登录了 ...

  4. 日历的问题C语言,C++(boost),python,Javascript,Java和Matlab实现

    今天看到一个很有意思的话题,例的标题叙述性描述,下面: 根据以下信息来计算1901年1月1至2000年12月31适逢星期日每个月的第一天的合伙人数量? a)  1900.1.1星期一 b)  1月,3 ...

  5. Windows Phone 如果你把Pivot控件当成主页面,那么这篇文章你值得看。

    原文:Windows Phone 如果你把Pivot控件当成主页面,那么这篇文章你值得看. 现在很多App都用到了Pivot视图 来当作 整个App主页面.如果你的Pivot视图主页面承载了大量数据的 ...

  6. 深度分析DataTable如何筛选

    这项DataTable指SpryMedia专为HTML Table设计的插件页面和发展,官方网站:http://legacy.datatables.net/index. 左右oSettings.aiD ...

  7. (hdu step 7.1.2)You can Solve a Geometry Problem too(乞讨n条线段,相交两者之间的段数)

    称号: You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/ ...

  8. Android SDK 和 Eclipse ADT 离线安装 教程

    因为google 被限制,就是FQ后,下载的速度依旧非常慢,让人非常崩溃啊,所以这里就分享一下离线安装android SDK 和eclipse ADT 离线安装方法. 安装之前首先已经确保java s ...

  9. 高速理解掌握node.js 字符编码,确码过程 以及base64编解码原理

    var buf1 = new Buffer('a','ascii'); // 字符'a' -> ascii编码 -> 61 存在计算机中 console.log(buf1); var b ...

  10. linux下一个oracle11G DG建立(一个):准备环境

    linux下一个oracle11G  DG建立(一个):准备环境 周围环境 名称 主库 备库 主机名 bjsrv shsrv 软件版本号 RedHat Enterprise5.5.Oracle 11g ...