NSIS:IfFileExists+Goto实现简单跳转

原文 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
时间: 2024-11-27 10:30:12

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

cmd goto命令 流程跳转_DOS/BAT

如果对不同的情况,需要执行不同的既定操作,若还是按照常规的执行流程的话,是无法完成任务的,这个时候,就需要引入流程跳转的概念,动用流程跳转语句 goto 了.流程跳转的含义是:改变默认的执行顺序,强制跳转到指定的位置执行特定的程序块. 先来看个例子:假设需要判断用户输入的是A还是B,代码可以写成这样: 复制代码 代码如下: @echo off set /p input=请输入字母A或B: if "%input%"=="A" goto A if "%inpu

三个界面的简单跳转问题 在线等

问题描述 三个界面的简单跳转问题 在线等 有三个Activit,分别为Activity1,2,3现在从Activity1跳转到2然后再跳转到3,可以把Activity3的值用startActivityForResult方法返回给Activity1么?Activity1没有直接跳转到Activity3 解决方案 使用SharedPreferences保存第三个界面的信息,在第一个页面调用this.getSharedPreferences('sharedPreference name' int mo

C++跳转语句之Goto对变量定义的影响详解_C 语言

前言 goto语句也称为无条件转移语句,其基本形式如下 : 语句标号由一个有效地标识符和符号";"组成,其中,标识符的命名规则与变量名称相同,即由字母.数字和下划线组成,且第一个字符必须是字母或下划线.执行goto语句后,程序就会跳转到语句标号处,并执行其后的语句. 通常goto语句与if条件语句连用,但是,goto语句在给程序带来灵活性的同时,也会使得使程序结构层次不清,而且不易读,所以要合理运用该语句. 发现问题 我们经常碰到有在goto后面定义变量,linux下编译不通过的问题(

PHP goto语句简介和使用实例

 这篇文章主要介绍了什么是PHP goto语句和goto操作符的使用实例,需要的朋友可以参考下 goto操作符可以用来跳转到程序中的某一指定位置.该目标位置可以用目标名称加上冒号来标记.PHP中的goto有一定限制,只能在同一个文件和作用域中跳转,也就是说你无法跳出一个函数或类方法,也无法跳入到另一个函数.你也无法跳入到任何循环或者switch 结构中.常见的用法是用来跳出循环或者switch,可以代替多层的break.   用法很简单:goto后面带上目标位置的标志,在目标位置上用目标名加冒号

php5.3 goto函数介绍和示例

 goto操作符可以用来跳转到程序中的某一指定位置.该目标位置可以用目标名称 加上冒号来标记. goto操作符是PHP5.3+后新增功能,用来跳转到程序的另一位置:用法很简单:goto后面带上目标位置的标志,在目标位置上用目标名加冒号标记,如下:     复制代码 代码如下: goto a; echo '脚本之家'; a:     echo 'http://www.jb51.net';     但是goto的目标位置只能同一文件和作用域[既不能跳转到一个函数和类方法中],当然它可以跳出循环,但是

源代码-C++ 6.0关于goto行号到宏函数的补充?

问题描述 C++ 6.0关于goto行号到宏函数的补充? C++ 6.0关于goto行号到宏函数的补充?请问如何根据goto语句的行标号转到对应的宏函数源代码执行? 解决方案 goto行号和宏没有什么关系.宏定义类似函数的写法执行的只是简单的替换,比如 define foo(x) x * x 你写 foo(x),会替换成x * x 解决方案二: goto是无条件跳转,只能在goto语句出现处改变控制流,无法通过本身返回.要用goto返回,可以定义多个label,在不同位置配合不同label使用g

PHP GOTO函数的使用语法

PHP的GOTO语法可以跳转到指定位置,如代码所示,goto display,在代码后面定义了一个display:,这样当执行goto display语句时,会跳到定义display的地方开始执行,这是PHP5.3增加的语法,支持PHP7. public function index() {     if (!I('get.search')) {         goto display;     }       //此处省略800字       $this->assign('account',

PHP goto语句简介和使用实例_php技巧

goto操作符可以用来跳转到程序中的某一指定位置.该目标位置可以用目标名称加上冒号来标记.PHP中的goto有一定限制,只能在同一个文件和作用域中跳转,也就是说你无法跳出一个函数或类方法,也无法跳入到另一个函数.你也无法跳入到任何循环或者switch 结构中.常见的用法是用来跳出循环或者switch,可以代替多层的break. 用法很简单:goto后面带上目标位置的标志,在目标位置上用目标名加冒号标记,如下: 复制代码 代码如下: <?phpgoto a;echo 'Foo';//此句被略过 a

dos 流程跳转 goto_DOS/BAT

如果对不同的情况,需要执行不同的既定操作,若还是按照常规的执行流程的话,是无法完成任务的,这个时候,就需要引入流程跳转的概念,动用流程跳转语句 goto 了.流程跳转的含义是:改变默认的执行顺序,强制跳转到指定的位置执行特定的程序块. 先来看个例子:假设需要判断用户输入的是A还是B,代码可以写成这样: @echo off set /p input=请输入字母A或B: if "%input%"=="A" goto A if "%input%"==&