检测软件运行环境过程中某些文件损坏后如何修复?
本人最初修复时,源文件就是以文件的形式存在本地(而且需要修复的文件比较多),赤裸裸的源文件在本地
还是不安全的,可以对源文件进行压缩加密等操作,执行修复操作时解压到本地目录。由于文件比较多,可以
然后调用“GetParameters” - 获取安装程序运行命令行参数
然后在回调函数“.onInit”中解析命令行参数,判断需要修复安装的文件。
Syntax:
${GetParameters} $var
Example:
Section
${GetParameters} $R0
; $R0="[parameters]"
SectionEnd
由此也想到可以通过winrar对所有需要修复的文件进行加密压缩,修复时,根据命令行参数指定的文件,和解
压路径,解压出某个修复文件到目标路径下,次方法没有尝试过,只是一个思路。
附nsis其他文件操作函数简介:
Locate - 搜索指定文件夹中符合指定过滤文件大小或指定文件过滤名的文件,并根据选项返回查找的文件路径、文件夹和名称
GetSize - 搜索文件、指定文件过滤名的文件或文件夹的大小或数量
DriveSpace - 获取驱动器的全部、已用和可用空间
GetDrives - 查找系统中所有可用驱动器
GetTime - 获取本地或系统时间;获取文件访问、创建和修改时间
GetFileAttributes - 获取文件或文件夹属性
GetFileVersion - 获取可执行文件的版本信息
GetExeName - 获取安装程序运行完整路径
GetExePath - 获取安装程序运行所在文件夹
GetParameters - 获取安装程序运行命令行参数
GetOptions - 获取安装程序运行命令行选项的值
GetRoot - 获取给定路径所属的根目录
GetParent - 获取给定路径的上层目录
GetFileName - 获取文件路径中的文件名称
GetBaseName - 获取文件路径中的文件基本名
GetFileExt - 获取文件路径中的文件扩展名
函数原型可在nsis用户手册中找到。
修复源文件可以放在服务器上通过下载到本地进行修复,源文件下载后可以通过验证文件的hash值、签名值、
大小等防止文件被篡改。
验证通过后就可以修复安装。本人最初修复时,源文件就是以文件的形式存在本地(而且需要修复的文件比较多),赤裸裸的源文件在本地
还是不安全的,可以对源文件进行压缩加密等操作,执行修复操作时解压到本地目录。由于文件比较多,可以
整个做成一个包,但是修复时并不是全部解压,可能只需要解压出一个文件修复目标文件。
某个文件的安装修复,或者全部修复。
制作安装脚本时必须先包含头文件FileFunc.nsh然后调用“GetParameters” - 获取安装程序运行命令行参数
然后在回调函数“.onInit”中解析命令行参数,判断需要修复安装的文件。
Syntax:
${GetParameters} $var
Example:
Section
${GetParameters} $R0
; $R0="[parameters]"
SectionEnd
由此也想到可以通过winrar对所有需要修复的文件进行加密压缩,修复时,根据命令行参数指定的文件,和解
压路径,解压出某个修复文件到目标路径下,次方法没有尝试过,只是一个思路。
附nsis其他文件操作函数简介:
Locate - 搜索指定文件夹中符合指定过滤文件大小或指定文件过滤名的文件,并根据选项返回查找的文件路径、文件夹和名称
GetSize - 搜索文件、指定文件过滤名的文件或文件夹的大小或数量
DriveSpace - 获取驱动器的全部、已用和可用空间
GetDrives - 查找系统中所有可用驱动器
GetTime - 获取本地或系统时间;获取文件访问、创建和修改时间
GetFileAttributes - 获取文件或文件夹属性
GetFileVersion - 获取可执行文件的版本信息
GetExeName - 获取安装程序运行完整路径
GetExePath - 获取安装程序运行所在文件夹
GetParameters - 获取安装程序运行命令行参数
GetOptions - 获取安装程序运行命令行选项的值
GetRoot - 获取给定路径所属的根目录
GetParent - 获取给定路径的上层目录
GetFileName - 获取文件路径中的文件名称
GetBaseName - 获取文件路径中的文件基本名
GetFileExt - 获取文件路径中的文件扩展名
函数原型可在nsis用户手册中找到。