!include "LogicLib.nsh"
使用 NSIS 的宏来提供各种逻辑基本语句,不需要预先添加函数。
  • 基本语句

If|Unless..{ElseIf|ElseUnless}..[Else]..EndIf|EndUnless
- 有条件的执行一个语句区块,取决于表达式。

AndIf|AndUnless|OrIf|OrUnless
- 给 If、Unless、ElseIf 和 ElseUnless 增加额外的条件语句。

IfThen..|..|
- 有条件的执行一个内联语句,取决于表达式。

IfCmd..||..|
- 条件的执行一个内联语句,取决于 NSIS 函数提供的真值。

Select..{Case[2|3|4|5]}..[CaseElse|Default]..EndSelect
- 执行多个语句区块之一,取决于表达式的值。

Switch..{Case|CaseElse|Default}..EndSwitch
- 跳转到多个标记之一,取决于表达式的值。

Do[While|Until]..{ExitDo|Continue|Break}..Loop[While|Until]
- 重复一个语句区块直到停止 取决于表达式的值。

While..{ExitWhile|Continue|Break}..EndWhile
- DoWhile..Loop的别名(向后兼容)

For[Each]..{ExitFor|Continue|Break}..Next
- 重复语句区块来连续改变变量的值。

  • 表达式

标准(内建的)字串判断(不区分大小写):
a == b; a != b

另外的不区分大小写的字串判断(使用 System.dll):
a S< b; a S>= b; a S> b; a S<= b
- 需要在 !include LogicLib.nsh 之前 !define LOGICLIB_STRCMP

区分大小写字串判断(使用 System.dll):
a S== b; a S!= b
- 需要在 !include LogicLib.nsh 之前 !define LOGICLIB_STRCMP

标准(内建的)有符号整数判断:
a = b; a <> b; a < b; a >= b; a > b; a <= b

标准(内建的)无符号整数判断:
a U< b; a U>= b; a U> b; a U<= b

64位整数判断(使用System.dll):
a L= b; a L<> b; a L< b; a L>= b; a L> b; a L<= b
- 需要在 !include LogicLib.nsh 之前 !define LOGICLIB_INT64CMP

内建的NSIS标记判断:
${Abort};
${Errors};
${RebootFlag};
${Silent}

内建的 NSIS 其它判断:
${FileExists} a;

任何有条件的 NSIS 指令判断:
${Cmd} a;

区段标记判断:
${SectionIsSelected} a;
${SectionIsSectionGroup} a;
${SectionIsSectionGroupEnd} a;
${SectionIsBold} a;
${SectionIsReadOnly} a;
${SectionIsExpanded} a;
${SectionIsPartiallySelected} a;

NSIS逻辑函数头文件介绍的更多相关文章

  1. NSIS文字及字符串函数与头文件介绍

    原文 NSIS文字及字符串函数与头文件介绍 文字函数,顾名思义就是处理字符串的函数.使用这些字符串函数前,必须先包含头文件WordFunc.nsh.该头文件目前包含如下一些函数:WordFind.Wo ...

  2. linux设备驱动程序该添加哪些头文件以及驱动常用头文件介绍(转)

    原文链接:http://blog.chinaunix.net/uid-22609852-id-3506475.html 驱动常用头文件介绍 #include <linux/***.h> 是 ...

  3. 函数-头文件//Calculator.h

    // // Calculator.h // 函数-头文件 // // Created by zhangxueming on 15/6/2. // Copyright (c) 2015年 zhangxu ...

  4. 【CUDA】Windows 下常用函数头文件

    CUDA 函数 头文件 __global__ __device__ #include <cuda_runtime.h> threadIdx #include <device_laun ...

  5. OpenCV常用头文件介绍

    转载:https://www.cnblogs.com/wangguchao/p/7244483.html 1.OpenCV包含的模块 cv – 核心函数库 cvaux – 辅助函数库 cxcore – ...

  6. opencv 常用头文件介绍

    1.OpenCV包含的模块 cv – 核心函数库 cvaux – 辅助函数库 cxcore – 数据结构与线性代数库 highgui – GUI函数库 ml – 机器学习函数库 2.常用头文件: #i ...

  7. <bits/stdc++.h>头文件介绍(包含源代码)

    注:转自http://blog.csdn.net/charles_dong2/article/details/56909347,同为本人写的,有部分修改. 之前在一个小OJ上刷题时发现有人是这么写的: ...

  8. c++ 私有函数 头文件设计

    clock.h #ifndef CLOCK_H_INCLUDED #define CLOCK_H_INCLUDED class Clock {public: static void HandleExd ...

  9. Linux C 一些函数 所属的头文件

    在编写程序时,有时总是不记得所使用的函数在哪个库函数中.现在先把自己以前经常用到的函数头文件总结一下. 有不对的地方还请指教. 1,系统调用文件的操作函数 #inlclude <fcntl.h& ...

随机推荐

  1. koa 项目打包(使用webpack打包koa2 框架app)

    关键问题 一:所有node_modules里的模块都不进行打包 webpack的核心功能是将引用的各个模块打到一个文件里,并会将各种规范的模块进行统一的模块化处理(webpack规范). 然而node ...

  2. JVM | JVM的核心技术

    说到JVM,很多工作多年的老铁,可能就有点发憷了,因为搬砖多年,一直使用java这个工具,对于JVM没有了解过,有句话面试造航母,上班拧螺丝,要啥自行车啊,知道如何搬砖就可以了,为啥要懂这么多,如果你 ...

  3. Centos7 部署.Net Core+Nginx+Supervisor

    1.安装.Net Core SDK 1.1. 在安装.NET之前,您需要注册Microsoft密钥,注册产品存储库并安装所需的依赖项.这只需要每台机器完成一次. sudo rpm -Uvh https ...

  4. SAN LAN MAN WAN的区别

    主要是范围不同 SAN: System Area NetworkLAN: Local Area NetworkMAN: Metropolitan Area NetworkWAN: Wide Area ...

  5. NLP - Log-linear Models

    1.The Language Modeling Problem         现在抛开我们之前讲的马尔科夫模型的假设,对于一门语言的定义,肯定不能简单依赖于每个单词的前两个单词,这是常识.比如英语中 ...

  6. python数据挖掘决策树算法

    决策树是一个非参数的监督式学习方法,主要用于分类和回归.算法的目标是通过推断数据特征,学习决策规则从而创建一个预测目标变量的模型.如下如所示,决策树通过一系列if-then-else 决策规则 近似估 ...

  7. PHP模板引擎Smarty内建函数section,sectionelse用法详解

    本文实例讲述了PHP模板引擎Smarty内建函数section,sectionelse用法.分享给大家供大家参考,具体如下: section 是 Smarty 模板中除了 foreach 以外的另一种 ...

  8. RabbitMQ学习之:(三)第一个RMQ的程序 (转贴+我的评论)

    RabbitMQ for Windows: Building Your First Application Posted by Derek Greer on March 7, 2012 This is ...

  9. hive简单学习---1

    ---------------------------------------------------------------------------------------------------- ...

  10. python列表展开的方法

    只有一层嵌套的常见方法: # 普通方法 list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]] list_2 = [] for _ in list_1: list ...