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 !