2023年12月3日发(作者:)
NSIS常用的命令及函数1:file [/nonfatal] [/a] ([/r] [/x 文件|通配符 [...]] (文件|通配符) [...] | /oname=输出路径文件名 输入路径文件名)
释放文件到当前输出路径。
如果使用了 /nonfatal 开关且当文件未找到时使用警告来代替错误
如果使用了 /a 开关,则被添加的文件的属性将会保持
如果使用了 /r 开关,匹配的文件将会在子目录里被递归的搜索。如果目录名匹配则所有包含的内容都会被递归添加,目录结构也会被保持
使用 /x 开关可以用来来排除文件或目录
相对应卸载段命令:
Delete [/REBOOTOK] 文件
从目标系统删除文件
2:WriteRegStr 根键 子键 项 值,WriteRegExpandStr 根键 子键 项 值把字串写入注册表。根键必须为下面列表之一:HKCR 或 HKEY_CLASSES_ROOTHKLM 或HKEY_LOCAL_MACHINEHKCU 或HKEY_CURRENT_USERHKU 或HKEY_USERSHKCC 或HKEY_CURRENT_CONFIGHKDD 或HKEY_DYN_DATAHKPD 或HKEY_PERFORMANCE_DATASHCTX 或SHELL_CONTEXT如果字串不能写入注册表则放置一个错误的标记。字串的类型为 REG_SZ 对应 WriteRegStr,或 REG_EXPAND_STR 对应WriteRegExpandStr。如果注册表键不存在则会自动创建。相对应卸载段命令:DeleteRegKey [/ifempty] 根键 子键删除一个注册表键。如果指定了 /ifempty,则该注册表键仅当它无子键时才会被删除(否则,整个注册表键将被删除)。有效的根键值在后面的 WriteRegStr 列出。如果该键不能被删除(或如果它不存在)则会放置一个错误的标记。3:SetOutPath 输出路径设置输出路径($OUTDIR)且当路径不存在时创建(需要时会递归创建)。必须为全路径名,通常都使用 $INSTDIR。如:SetOutPath $INSTDIR"InstallDir $PROGRAMFILESQUHAIL"那么这就是我们的目录了!对应卸载命令:RMDir 要删除的目录4:CreateDirectory 要创建的路径创建 (递归创建) 指定的目录。当目录不能创建时会放置一个错误标记。你也可以指定一个绝对路径。CreateShortCut快捷文件.lnk 目标文件 [参数 [图标文件 [图标索引号 [启动选项 [键盘快捷键 [描述]]]]]]对应卸载命令:Delete5:RegDLL DLL文件 [入口点名称]载入指定的 DLL 并且调用 DllRegisterServer (或入口点名称,当指定之后)。当产生一个错误的时候会置一个错误标记(例如不能载入DLL,不能初始化 OLE,不能找到入口点,或者函数返回任何其它错误 ERROR_SUCCESS (=0))。其实就是注册或加载你要的插件!如:RegDLL $对应的卸载命令:UnRegDLL6:Exec 命令这应该算是常用的命令了,执行一个指定的程序并且立即继续安装,就是直接执行一个程序。ExecWait 命令 [用户变量(返回代码)]执行一个指定的程序并且等待运行处理结束。如:运行一个安装文件 .infExecWait "RunDll32 ,LaunchINFSection ,DefaultInstall"
对应卸载:ExecWait "RunDll32 ,LaunchINFSection $,DefaultunInstall"
当然DefaultunInstall是不定的,具体要看INF文件,它可以定义[unInstall]OR [DEL]或者别的,如果没有卸载段就无法卸载!7:ReadINIStr 用户变量(输出) INI文件 区段 项从 “INI文件” 的 “区段” 区段读取 “项” 的值并把该值输出到用户变量。如果该项未找到时会放置一个错误标记且该用户变量被赋为空值。对应卸载:DeleteINISec INI文件 区段从“INI文件” 里删除整个区段 “区段”DeleteINISec $ Field 2DeleteINIStr INI文件 区段 字串从“INI文件” 里的 “区段” 区段删除 “字串” 字串。DeleteINIStr $ Field 2 A 组件安装比如:[Field 1]Type=LabelText=A 组件安装Left=8Right=68Top=6Bottom=13[Field 2]Type=LabelText=B 组件安装Left=5Right=65Top=44Bottom=518:ReserveFile [/nonfatal] [/r] [/x file|wildcard [...]] 文件 [文件...]把文件保存在稍后使用的数据区块用于下面的调用。有时,预先打包文件,方便安装加速释放之用。如:ReserveFile ""9:Function [函数名]开始并打开一个新的函数。FunctionEnd;在这个段中定义函数"func"10:StrCpy 用户变量(目标) 字串 [最大长度] [起始偏移]StrCpy $0 "a bbbbbbbb" 就有$0 = "a bbbbbbbb"StrCpy $0 "a bbbbbbbb" 3就有$0 = "a b"11:StrCmp 字串1 字串2 相同时跳转的标记 [不相同时跳转的标记]比较(不区分大小写)“字串1”和“字串2”,如果两者相等,跳转到“相同时跳转的标记”,否则跳转到“不相同时跳转的标记”。12:Exch [用户变量 | 堆栈索引]当不指定参数时,交换堆栈顶部的两个单元。Push 字串把一个字串压入堆栈,该字串可随后从堆栈里弹出。Pop 用户变量(输出)从堆栈里弹出一个字串到用户变量 $x。如果堆栈是空的,则会置一个错误标记。如:Push 1Push 2ExchPop $0 # = 113:if(1) IfAbort 退出时要跳转的标记 [不是退出时要跳转的标记]如果调用退出时它将返回 true(2) IfErrors 错误时跳转的标记 [没有错误时跳转的标记]检测并清除错误标记,如果设了错误标记,则跳转到“错误时跳转的标记”,否则跳转到“没有错误时跳转的标记”。(3)IfFileExists 要检测的文件 文件存在时跳转的标记 [文件不存在时跳转的标记]检测“要检测的文件”是否存在(可以用通配符,或目录),并当文件存在时跳转到“文件存在时跳转”,否则跳转到“文件不存在时跳转”。14:Goto 要跳转的标记 | +偏移| -偏移| 用户变量(目标地址)如果指定了标记,则跳转到 “要跳转的标记”。15:MessageBox 消息框选项列表 消息框文本 [/SD 返回] [检测返回值 跳转到标记] [检测返回值2 跳转到标记2]显示一个包含“消息框文本”的消息框。“消息框选项列表”必须为下面的一个或多个,多个使用 | 来隔开。MB_OK - 显示 OK 按钮MB_OKCANCEL - 显示 OK 和取消按钮MB_ABORTRETRYIGNORE - 显示退出、重试、忽略按钮MB_RETRYCANCEL - 显示重试和取消按钮MB_YESNO - 显示是和否按钮MB_YESNOCANCEL - 显示是、否、取消按钮MB_ICONEXCLAMATION - 显示惊叹号图标MB_ICONINFORMATION - 显示信息图标MB_ICONQUESTION - 显示问号图标MB_ICONSTOP - 显示终止图标MB_TOPMOST - 使消息框在最前端显示MB_SETFOREGROUND - 设置前景MB_RIGHT - 右对齐文本MB_RTLREADING - RTL 阅读次序MB_DEFBUTTON1 - 默认为按钮 1MB_DEFBUTTON2 - 默认为按钮 2MB_DEFBUTTON3 - 默认为按钮 3MB_DEFBUTTON4 - 默认为按钮 4“检测返回值”可以为 0(或空,或保留关闭),或下列之一:IDABORT - 退出按钮IDCANCEL - 取消按钮IDIGNORE - 忽略按钮IDNO - 否按钮IDOK - OK 按钮IDRETRY - 重试按钮IDYES - 是按钮如果消息框的返回值为“检测返回值”,则安装程序执行跳转。如:IfFileExists "$" +3 0
MessageBox MB_OK|MB_ICONEXCLAMATION "请放到MY MPC LOOKOU目录下运行"
16:Rename [/REBOOTOK] 源文件 目标文件把 源文件 重命名为 目标文件如:Rename $ $


发布评论