.nsh的脚本如何编写
时间: 2023-12-01 13:02:47 浏览: 50
要编写一个.nsh脚本,你可以按照以下步骤进行:
1. 打开一个文本编辑器,比如记事本或者专门用于编程的编辑器。
2. 在第一行添加`!include "MUI.nsh"`,这是引用Nullsoft Scriptable Install System (NSIS)的库文件,它提供了一些常用的脚本命令和功能。
3. 在下一行添加`Outfile "setup.exe"`,这是定义生成的可执行文件的名称和类型。
4. 可选地,你可以在下一行添加`Icon "icon.ico"`来指定生成的可执行文件的图标。
5. 接下来,你可以开始编写你的脚本的主要部分。你可以使用NSIS提供的命令和函数来实现不同的功能,比如创建文件夹、复制文件、创建快捷方式等。在这里,你可以根据你的需求来编写代码。
6. 最后,在脚本的末尾,添加`Section`和`SectionEnd`之间的代码。这些代码定义了安装程序的不同部分,比如选择安装路径、安装文件等。
7. 保存文件,并将其命名为以.nsh为扩展名的文件。
这只是一个简单的示例,你可以根据你的具体需求来编写更复杂的脚本。记得在编写脚本时参考NSIS的官方文档,以了解更多可用的命令和函数。
相关问题
!include LogicLib.nsh !define PRODUCT_UNINST_ROOT_KEY "HKLM" !define PRODUCT_DIR_REGKEY "Software\JzbProductionTool" !define DIR "D:\JzbProductionTool\" Function .onInit ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_DIR_REGKEY}" "Path" ${If} $R0 != "" StrCpy $INSTDIR $R0 ${Else} StrCpy $INSTDIR ${DIR} ${EndIf} FunctionEnd
这段 NSIS 脚本代码使用了 `LogicLib.nsh` 插件,定义了一些常量,并编写了一个 `.onInit` 回调函数。让我们逐行分析它的作用:
1. `!include LogicLib.nsh`:包含了 `LogicLib.nsh` 插件,该插件提供了一些逻辑判断和操作的函数。
2. `!define PRODUCT_UNINST_ROOT_KEY "HKLM"`:定义了一个常量 `PRODUCT_UNINST_ROOT_KEY`,表示产品的卸载根键,这里设置为 `HKLM`,即 HKEY_LOCAL_MACHINE。
3. `!define PRODUCT_DIR_REGKEY "Software\JzbProductionTool"`:定义了一个常量 `PRODUCT_DIR_REGKEY`,表示产品的注册表路径,这里设置为 `Software\JzbProductionTool`。
4. `!define DIR "D:\JzbProductionTool\"`:定义了一个常量 `DIR`,表示默认的安装路径,这里设置为 `D:\JzbProductionTool\`。
5. `Function .onInit`:定义了 `.onInit` 回调函数,在安装程序初始化时被调用。
6. `ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_DIR_REGKEY}" "Path"`:使用 `ReadRegStr` 函数读取注册表路径 `${PRODUCT_UNINST_ROOT_KEY}\${PRODUCT_DIR_REGKEY}` 中的键值 `"Path"`,将结果保存在变量 `$R0` 中。
7. `${If} $R0 != ""`:使用逻辑判断函数 `${If}` 判断变量 `$R0` 是否不为空。
8. `StrCpy $INSTDIR $R0`:如果 `$R0` 不为空,则将 `$R0` 的值赋给 `$INSTDIR`,即设置安装路径为上一次安装的路径。
9. `${Else}`:如果 `$R0` 为空,则执行下面的代码块。
10. `StrCpy $INSTDIR ${DIR}`:将默认的安装路径 `${DIR}` 赋给 `$INSTDIR`,即设置安装路径为默认路径。
11. `${EndIf}`:结束逻辑判断。
12. `FunctionEnd`:结束回调函数的定义。
总体来说,这段代码的作用是在安装程序初始化时读取注册表中的路径,如果存在上一次安装的路径,则使用该路径作为安装路径;如果不存在,则使用默认的路径。
使用nsis写一个美化的安装脚本
NSIS(Nullsoft Scriptable Install System)是一个开源的安装程序制作工具,它可以创建Windows平台下的安装程序。NSIS提供了一个简单而强大的脚本语言,使得开发者可以创建定制化的安装程序。
以下是一个使用NSIS写的美化安装脚本的示例:
1. 首先,我们需要创建一个NSIS脚本文件,比如“installer.nsi”。
2. 在脚本文件中,我们需要定义需要安装的文件和目录。比如:
```
; 定义需要安装的文件和目录
SetOutPath "$INSTDIR"
File /r "path/to/files/*.*"
```
3. 接下来,我们可以自定义安装界面。NSIS提供了多种界面模板,我们可以选择其中一种或自己编写。比如:
```
!include "MUI2.nsh"
; 自定义安装界面
!define MUI_HEADERIMAGE
!define MUI_WELCOMEFINISHPAGE_BITMAP "path/to/image.bmp"
!define MUI_LICENSEPAGE_BITMAP "path/to/image.bmp"
!define MUI_CUSTOMFUNCTION_GUIINIT myGUIInit
!define MUI_CUSTOMFUNCTION_LEAVE myLeave
Function myGUIInit
; 设置安装界面的背景色和字体
FunctionEnd
Function myLeave
; 安装完成后的处理
FunctionEnd
; 定义安装界面元素
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "path/to/license.txt"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
```
4. 最后,我们需要编译NSIS脚本文件并生成安装程序。在命令行中执行以下命令即可:
```
makensis.exe installer.nsi
```
上述示例演示了如何在NSIS中创建美化的安装脚本。你可以根据需要自定义界面和安装过程中的行为。同时,NSIS还提供了很多其他功能,比如创建桌面快捷方式、添加注册表项等,可根据自己的需求进行开发。