Lancer une fonction après un check size.

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
RiderFx3
Batcheur débutant
Messages : 10
Enregistré le : 15 janv. 2011 01:11

Lancer une fonction après un check size.

Message 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.
Modifié en dernier par RiderFx3 le 22 janv. 2012 15:52, modifié 2 fois.
RiderFx3
Batcheur débutant
Messages : 10
Enregistré le : 15 janv. 2011 01:11

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

Message 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 ?
RiderFx3
Batcheur débutant
Messages : 10
Enregistré le : 15 janv. 2011 01:11

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

Message 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.
RiderFx3
Batcheur débutant
Messages : 10
Enregistré le : 15 janv. 2011 01:11

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

Message 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 !
Répondre