接下来的一些都是使用NSIS打包的时候常用的一些指令(或者说是,类似于代码中的“类型”)
1、File
作用:释放文件到当前输出路径。(使用中与 SetOutPath 配合使用,,一般直接给出指定的目录即可)
常用参数:
/nonfatal 开关且当文件未找到时使用警告来代替错误
/a 开关,则被添加的文件的属性将会保持
/r 开关,匹配的文件将会在子目录里被递归的搜索。如果目录名匹配则所有包含的内容都会被递归添加,目录结构也会被保持
/x 开关可以用来来排除文件或目录
[/nonfatal] [/a] ([/r] [/x file|wildcard [...]] (file|wildcard) [...] | /oname=file.dat infile.dat)
InstallDir "C:\Ma_Hong_Kai"
;……
SetOutPath $INSTDIR ; $INSTDIR--- 用户定义的解压路径,和InstallDir配合使用
File "..\build\Win32\release\mahongkai\mahongkai.dll"
InstallDir "C:\Ma_Hong_Kai"
;……
SetOutPath $INSTDIR
File /r "..\mahongkai.dll"
2、Delete
作用:从目标系统删除文件(可以是文件或通配符,但应使用完整路径指定)
[/REBOOTOK] file
Delete "$INSDIR\mahongkai.dll"
如果无法删除,启动后删除
Delete /REBOOTOK "$INSDIR\mahongkai.dll"
3、Rename
作用:把源文件重命名为目标文件
[/ REBOOTOK] source_file dest_file
Rename $INSTDIR\mahongkai.dll $INSTDIR\mahongkai.dat
4、CreateDirectory
作用:创建 (递归创建) 指定的目录。当目录不能创建时会放置一个错误标记。你也可以指定一个绝对路径
Var /GLOBAL G_AGi ;定义的变量都是全局变量,
CreateDirectory "$G_AGi \「开始」菜单\程序\MHk"
5、RMDir
作用:删除指定的目录(没有通配符的完全限定路径,无法删除当前工作目录)
[/ r] [/ REBOOTOK] directory_name
RMDir /r /REBOOTOK "$APPDATA\mahongkai"
6、SetOutPath
作用:设置输出路径($OUTDIR)且当路径不存在时创建(需要时会递归创建)。必须为绝对路径名,通常都使用 $INSTDIR
SetOutPath $ INSTDIR
7、CreateShortCut
作用:创建快捷文件.lnk 目标文件
link.lnk target.file [parameters [icon.file [icon_index_number [start_options [keyboard_shortcut [description]]]]]]
CreateShortCut "$AGI\ 「开始」菜单\程序\MHK\mahongkailnk.lnk" "$INSTDIR\mahongkaiexe.exe" "" "$INSTDIR\mahongkaiexe.exe" 0
参数说明:
/ REBOOTOK 重新启动时进行命令指定的操作,比如 RMDir / REBOOTOK $ INSTDIR 新启动时将删除在此过程中无法删除的任何文件或目录
NSIS使用手册(讲得很是详细)
Ma_Hong_Kai 学习笔记,如有错误之处,欢迎指正。