.Bat : Tester si un fichier est vide (en .bat )

Bonjour

J’ai aussi galéré avec ce genre de commande

for /r "%~1\" %%i in (*.txt) do if %%~zi==0 echo le fichier "%%i" et vide

ou

set toto=c:\toto.txt

if %toto%%~zi==0 echo "%toto% : fichier vide"

(que c’est chiant le bat ^^)

j’ai développé un petit programme qui me rends la vie plus facile pour tester si un fichier et vide ou pas

TestFichierVide.exe

Donc pour l’utiliser il suffit de passer la commande suivante :  TestFichierVide.exe nomdetonfichier

Pour connaitre les codes retour de ce programme : TestFichierVide.exe /?

Vérifie si un fichier est vide ou pas (via sa taille)

Mettre le fichier à tester comme 1er paramétre (avec son chemin)
 Code retour du programme

Code 0 : Commande réussi et/ou Fichier Vide
 Code 1 : Fichier NON Vide
 Code 2 : Fichier inexistant
 Code 99 : Pas d'argument , Il faut un argument , pour plus d'info TestFichierVi
 de.exe /?

By Bobby's mruffenach/fmazza


Pour connaitre la version TestFichierVide.exe -version

si l’on souhaite tester si le fichier toto.txt est vide via ce programme TestFichierVide.exe il faut faire la commande suivante :
TestFichierVide.exe toto.txt

Si le fichier est vide la variable %ERRORLEVEL% sera = à 0
Si le fichier n’est pas vide la variable %ERRORLEVEL% sera = à 1

Donc ensuite on peut faire un truc du genre :

IF %ERRORLEVEL% EQU 0 goto OK
 IF %ERRORLEVEL% NEQ 0 goto NOK

:OK
 echo "Je fais quelque chose car le fichier est vide"
 exit /b 0

:NOK
 echo "Je fais rien car le fichier n'est pas vide"
 exit /b 123

PS: ne pas oublier pas de spécifier le chemin ou se situe le programme TestFichierVide.exe lorsque onl’utilise.
Par exemple le programme via le chemin suivant : C:\Users\mruffenach
Et bien lorsque l’on souhaite tester le fichier toto.txt qui est sur le chemin C:\tmp on fait la commande suivante:

C:\Users\mruffenach\TestFichierVide.exe C:\tmp\toto.txt

 

Télécharger ici : testfichiervide

Étiquettes :

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *