Hello

Je rame sur un pauvre script .bat

Dans le répertoire principal, j'ai le fichier MonSoft.exe (compilé en VB6) et upx. J'ai un sous-répertoire SetupNsis, dans lequel j'ai mon script Creer_installeur.bat
Si le fichier exe est pas encore compressé (avec upx), je veux que le script le compresse avant de lancer le script qui créer l'installeur (le .nsi).
Le problème c’est que ça fait un peu n'importe quoi : ça compresse une première fois puis ça essaye une deuxième fois (avec un message d'erreur upx: MonSoft_Vb.exe: AlreadyPackedException, et MonSoft.exe (qui était compressé) est supprimé.

Ca fait une heure que j'essaye de piger pourquoi et que je fais des tests de goto etc, je ne m'en sors pas du tout...

Si quelqu'un a une solution

Merkouin !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@echo on
setlocal
set file=../MonSoft.exe
set maxbytesize=1000000

call :setsize %file%

:compare
if %size% lss %maxbytesize% (
    echo File is less than %maxbytesize% bytes
) else (   
    echo File is more than %maxbytesize% bytes 
	cd..
	if  exist MonSoft_Vb.exe del MonSoft_Vb.exe /F /Q
	rename MonSoft.exe MonSoft_Vb.exe
	upx --best --crp-ms=999999 --nrv2d -o MonSoft.exe MonSoft_Vb.exe
	del MonSoft_Vb.exe /F /Q
)
goto compil

:setsize
set size=%~z1
goto compare

:compil
cd SetupNsis
start Setup_MonSoft.nsi