Page 1 sur 1

Lancer une fonction après un check size.

Posté : 22 janv. 2012 13:53
par RiderFx3
Bonjour,

J'ai besoin d'une ligne qui me permette de check la le poids d'un fichier .bin
Et de ne continuer le programme uniquement si le poids de ce dernier correspond à une certaine valeur.

Le fichier s'appelle NAND1.bin, et dois peser 17 301 504 octets.

J'ai trouvé ça:

Code : Tout sélectionner

call :size_file fichier_à_controler.txt
if %size%==0 echo file empty>>fichier_de_log.txt

:size_file
set size=%~z1
goto exit
:exit 
Mais je ne sais pas vraiment où rentrer mes valeurs...

Merci pour votre aide.

Re: Continuer le programme si taille d'un fichier est correcte

Posté : 22 janv. 2012 14:49
par RiderFx3
Alors mise en situtation, cette partie de code fonctionne parfaitement lorsqu'elle est seule dans un batch:

Code : Tout sélectionner

@echo off
:USB16-AUTO-DUMP1
@echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
@echo  º  EASY NandPro v2.0e   º
@echo  º     by RiderFx3       º
@echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo   EXTRACTION de NAND1.bin: en cours...
echo.
NandPro.exe usb: -r16 NAND1.bin
echo.
if exist NAND1.bin (goto USB16-AUTO-DUMP1-SIZE) else (goto USB16-DUMP-ERROR)

:USB16-AUTO-DUMP1-SIZE
call :size_file NAND1.bin
if %size%==17301504 (echo Taille valide !) else echo Taille invalide !
pause

:size_file
set size=%~z1
goto exit
:exit 
 
Elle Dump mon fichier NAND1.bin, vérifie qu'il existe, et vérifie sa taille et affiche un message en fonction.
Seulement, lorsque je copie exactement la même partie de code dans le batch complet, il ne prends pas en compte la pause, et continue le script... :/

D'autre part, j'aimerais au lieu d'affiche du texte après la vérif de la taille, pouvoir appeler une autre fonction sans rien affiche.
Comment faire svp ?

Re: [RESOLU] lancer une fonction après un check size.

Posté : 22 janv. 2012 15:17
par RiderFx3
Salut à tous.

J'ai résolu mon problème. En faite la fonction appelée si la taille est inexacte était trop loin dans le script complet. Je l'ai donc mis juste en dessous de :size_file.

Et pour appeler une fonction j'ai procédé comme ça:

Code : Tout sélectionner

if %size%==17301504 (goto USB16-AUTO-DUMP2) else (goto USB16-DUMP1-ERROR)
Merci à vous.

Re: Lancer une fonction après un check size.

Posté : 22 janv. 2012 15:56
par RiderFx3
Bon voilà que ça ne marche plus... GRrrrr pourtant tou fonctionnait tout à l'heure...

Donc voilà le script:

Code : Tout sélectionner

@echo off
:USB16-AUTO-DUMP1
@echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
@echo  º  EASY NandPro v2.0e   º
@echo  º     by RiderFx3       º
@echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo   EXTRACTION de NAND1.bin: en cours...
echo.
NandPro.exe usb: -r16 NAND1.bin
echo.
if NOT exist NAND1.bin (goto USB16-AUTO-DUMP1-MISSERROR) else (goto USB16-AUTO-DUMP1-SIZE)

:USB16-AUTO-DUMP1-SIZE
call :size_file_NAND1 NAND1.bin
if %size%==17301504 (goto OK) else (goto USB16-AUTO-DUMP1-SIZEERROR)

:size_file_NAND1
set size=%~z1
goto exit
:exit 

:USB16-AUTO-DUMP1-SIZEERROR
echo.
echo   L'EXTRACTION de NAND1.bin a echoue !
echo   La taille de la NAND est incorrecte!
echo   Veuillez verifier votre montage et recommencer.
echo.
pause
goto END

:USB16-AUTO-DUMP1-MISSERROR
echo.
echo   L'EXTRACTION de NAND1.bin a echoue !
echo   Le fichier NAND1.bin est introuvable!
echo   Veuillez verifier votre montage et recommencer.
echo.
pause
goto END

:OK
echo Ca Marche !
pause
voilà alors le problème c'est que mon fichier est bien présent, sa taille est correcte, mais quoi qu'il en soit, le script m'affiche toujours la fonction située juste sous :

:size_file_NAND1
set size=%~z1
goto exit
:exit

Je le sais car si j'inverse :USB16-AUTO-DUMP1-MISSERROR et :USB16-AUTO-DUMP1-SIZEERROR, j'obtient à chaque fois le message d'erreur de celui qui est le plus haut... et là, je sèche ...

EDIT: en fait si je déplace :size_file sous toutes les autres fonction, tout marche normalement !

Faut croire que poster sur un forum m'aide à réfléchir LOL ! Super Monologue !