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