Je dois extraire un fichier dans un dossier de sortie de mon installateur NSIS. Le nom du fichier contient son numéro de version. J'ai besoin d'une méthode pour lire le numéro écrit dans le nom de mon fichier.Lire les numéros au nom d'un fichier par NSIS
Exemple Nom du fichier:
MyFile_4.3_runtime_80968_x64.exe
J'ai utilisé le code suivant pour lire automatiquement:
Var Version
Section
${GetFileVersion} "F:\FilesToBeInstalled\MyFile_4.3_runtime_?????_x64.exe" $Version
MessageBox MB_OK "Version: $Version"
SectionEnd
plus tôt, il travaillait pour moi. Mais soudain, il a cessé de fonctionner. Si j'écris le bon numéro au lieu d'écrire ?????
alors ça marche. Par exemple, le code suivant fonctionne pour moi:
Var Version
Section
${GetFileVersion} "F:\FilesToBeInstalled\MyFile_4.3_runtime_80698_x64.exe" $Version
MessageBox MB_OK "Version: $Version"
SectionEnd
La ligne '$ {} WordFind2X "MyFile_4.3_runtime_80968.exe" "MyFile_4.3_runtime_" ".exe" "-1" $ Version' utilise l'annonce 'MyFile_4.3_runtime_80968.exe' qui est mon problème que je ne sais pas à l'avance que' 80968' est présent dans le nom du fichier. – skm
J'ai modifié ma réponse et ajouté FindFirst pour trouver toutes les instances de ce modèle de nom. Si vous pouvez exclure plusieurs fichiers en suivant le modèle de dénomination, vous pouvez rompre la boucle après le premier hit. – idleberg
Désolé, j'ai oublié de mentionner que le '_x64' est également présent dans le nom du fichier juste avant' .exe'. Maintenant, cela va créer un problème. Comment puis-je faire face à cette situation? – skm