LogicLib.nsh
程序的三种基本结构包括:顺序结构、分支结构、循环结构。顺序结构是最基本的结构,本文主要说明了如何在NSIS脚本中写出分支结构和循环结构。
最基本的分支结构和循环结构可以用StrCmp命令和Goto命令组成,但通过这种方式写出的代码可读性极差且难以调试。此时我们就需要用到头文件 LogicLib.nsh 中的功能了。
下面是一个示例程序,在“MyProgram”区域中输入我们要调试的代码:
!define DEBUG_PATH "E:\NSIS_Test\TmpProgram"
!define OUTPUT_PATH "E:\NSIS_Test\Output"
!define INSTALL_PATH "E:\NSIS_Test\Output"
!include LogicLib.nsh
Name "NSIS_VariableConstants_Test"
Caption "NSIS_VariableConstants_Test"
InstallDir ${INSTALL_PATH}
OutFile "Galatea.exe"
Section "My Program"
SetOutPath ${OUTPUT_PATH}
File /r "${DEBUG_PATH}\*.*"
; ----------------- 在这里输入要调试的代码 -----------------
SectionEnd
我使用 HM NSIS Edit 2.0.3 工具编辑NSIS脚本,使用编译工具 makensis.exe(版本号2.46) 进行编译。
逻辑代码结构
虽然可以
使用
StrCmp,IntCmp,IfErrore,Goto等命令来执行条件语句和循环语句。然而,还有更简单的方法。
Log
i
cLi
b提供了一些非常简单的宏,使得一些复杂结构的构建变得简单。在
Log
i
cLi
b.
nsh
中对它的语法进行了解释,与其他的编程语言相似,对初学者和进阶者都很友好。
例如,不
使用
Log
i
cLi
b库,对变量的校验方法
StrCmp $0 'some value' 0 +3
If|Unless..{ElseIf|ElseUnless}..[Else]..EndIf|EndUnless
- 有条件的执行一个语句区块,取决于表达式。
AndIf|AndUnless|OrIf|OrUnless
- 给 If、Unless、El
.
nsh
怎么样运行 介绍 (Introduction)
It can often be difficult to manage multiple machines on a daily basis. While Secure Shell (SSH) is a good choice for remote access, the protocol itself has some drawback...
var ysSetting
nsis
还提供了寄存器,可读写变量:
$0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $R0, $R1, $R2, $R3, $R4, $R5, $R6, $R7, $R8, $R9
2.逻辑表达式
nsi...
NSIS
官网(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。
NSIS
通过它的
脚本
语言来描述安装程序的行为和逻辑的。
1.1 下载地址
卸载时报错: 未定义
NSIS
_CONFIG_
LOG
解决: 下载
NSIS
的
log
模块
nsis
-3.05-
log
.zip, 覆盖
NSIS
文件夹中同名文件即可
MessageBox MB_OK '$$0 is "$0"' ;$0是某个值
${If} $0 == 'some value'
MessageBox MB_OK '$$0 is some value'
${ElseIf} $0 == 'some other value'
MessageBox MB_OK '$$0 is some other value'
${Else}