J'essaie de mettre à jour une chaîne INI qui a quelque chose de similaire à [Version]DisplayVersion=0.0.298
à partir de la recherche d'un nouveau répertoire dans un dossier. La chaîne INI actuelle, 0.0.298
, correspond au répertoire en cours qui ressemble à ..\app-0.0.298
.Mise à jour de la chaîne INI à l'aide de FindFirst
Pendant l'exécution, l'application se met parfois à jour en créant un nouveau dossier qui pourrait ressembler à ..\app-0.0.301
. Ce que je veux faire est de trouver ce répertoire et écrire son nouveau numéro de version à [Version]DisplayVersion
pour correspondre à la nouvelle version mise à jour afin qu'il ressemble à ceci: [Version]DisplayVersion=0.0.301
.
J'ai ce qui à ce jour ne fonctionne pas:
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
Qu'est-ce que je manque ici ou est-il une meilleure façon de faire cela?
Qu'est-ce qui ne fonctionne pas? Énumération d'annuaire? VersionCompare? Ini manutention? Et que sont définis APPDIR et InfoINI? – Anders