我試圖更新一個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