我试图更新一个INI字符串,它具有类似[Version]DisplayVersion=0.0.298
的功能,以查找文件夹中的新目录。当前的INI字符串0.0.298
与当前目录相匹配,如..\app-0.0.298
。使用FindFirst更新INI字符串
在运行期间,应用程序有时会更新自己,创建一个新文件夹,可能看起来像..\app-0.0.301
。我想要做的是找到这个目录,并将其新版本号写入[Version]DisplayVersion
以匹配新的更新版本,所以它看起来像这样:[Version]DisplayVersion=0.0.301
。
我有这个迄今为止未工作:
FindFirst $0 $1 `${APPDIR}\app-*`
ReadEnvStr $2 BUILD # Set earlier in the script ($2 = 0.0.298)
StrCmp $1 "" +11
Push `$2.0`
Push `$1.0`
Call VersionCompare # http://nsis.sourceforge.net/VersionCompare
Pop $3
IntCmp $3 1 +4 +4 0
IfFileExists `${APPDIR}\app-$1\${APP}.exe` 0 +3
DeleteINIStr "${InfoINI}" "Version" "DisplayVersion"
WriteINIStr "${InfoINI}" "Version" "DisplayVersion" "$1"
FindNext $0 $1
Goto -10
FindClose $0
缺少什么我在这里还是有更好的方式来这样做呢?
什么不起作用?目录枚举? VersionCompare? Ini处理? APPDIR和InfoINI定义的是什么? – Anders