BATCH: Compter le nombre de ligne de plusieur fichier [Résolu/Fermé]

Signaler
Messages postés
419
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019
-
Messages postés
13331
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
8 mars 2021
-
Bonjour,
Je souhaite améliorer mon petit script, il compte le nombre de ligne de mes fichier, actuellement je passe en variable chaque fichier et je compte.

mais je souhaiterai que le script analyse le dossier et me compte automatiquement le nombre de ligne de tous mes fichier *.c et *.h , sans avoir a indiquer le chemin de chaque fichier ...

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION 
@for %%n in (%0) do set racine=%%~dpn

set affichage=%racine%affichage.c
set destruction=%racine%destruction.c
set event=%racine%event.c
set init=%racine%init.c
set main=%racine%main.c
set menu=%racine%menu.c
set pilotage=%racine%pilotage.c
set reseau=%racine%reseau.c
set thread_1=%racine%thread_1.c

set prototype=%racine%prototype.h

set /a compt_affichage=0
set /a compt_destruction=0
set /a compt_event=0
set /a compt_init=0
set /a compt_main=0
set /a compt_menu=0
set /a compt_pilotage=0
set /a compt_reseau=0
set /a compt_thread_1=0
set /a compt_prototype=0

:main
cls

for /f "delims=" %%i in ('type "!affichage!"') do set /a compt_affichage+=1
for /f "delims=" %%i in ('type "!destruction!"') do set /a compt_destruction+=1
for /f "delims=" %%i in ('type "!event!"') do set /a compt_event+=1
for /f "delims=" %%i in ('type "!init!"') do set /a compt_init+=1
for /f "delims=" %%i in ('type "!main!"') do set /a compt_main+=1
for /f "delims=" %%i in ('type "!menu!"') do set /a compt_menu+=1
for /f "delims=" %%i in ('type "!pilotage!"') do set /a compt_pilotage+=1
for /f "delims=" %%i in ('type "!reseau!"') do set /a compt_reseau+=1
for /f "delims=" %%i in ('type "!thread_1!"') do set /a compt_thread_1+=1
for /f "delims=" %%i in ('type "!prototype!"') do set /a compt_prototype+=1

set /a total_ligne =!compt_affichage!+!compt_destruction!+!compt_event!+!compt_init!+!compt_main!+!compt_menu!+!compt_pilotage!+!compt_reseau!+!compt_thread_1!+!compt_prototype!

cls
echo affichage !compt_affichage!
echo destruction !compt_destruction!
echo event !compt_event!
echo init !compt_init!
echo main !compt_main!
echo menu !compt_menu!
echo pilotage !compt_pilotage!
echo reseau !compt_reseau!
echo thread_1 !compt_thread_1!
echo prototype !compt_prototype!
echo.
echo ligne=!total_ligne!
pause


:fin
endlocal 
exit



MERCIIIIIIIIIIIIIII (je reflechie ç une solce en meme temps que j'attends une reponse ^^)

1 réponse

Messages postés
13331
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
8 mars 2021
4 196
Bonsoir,

Voilà la solution :

@echo off

Setlocal enableextensions enabledelayedexpansion

set /a total=0

for %%A in (*.c *.h) do (

set /a compt=0

for /f "tokens=*" %%I in ('type "%%A"') do (set /a compt+=1)

echo %%~dpnxA : !compt!

set /a total=!total!+!compt!

)

echo. & echo Total : !total!

Endlocal

pause

exit
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
419
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019
25
Ah super !! Merci !
Messages postés
13331
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
8 mars 2021
4 196 >
Messages postés
419
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019

De rien ;)
Messages postés
419
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019
25
Ya un truc que je comprends pas bien, c'est l'utilisation de %%~dpnxA
Il sert juste a recupere le chemin ?
Messages postés
13331
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
8 mars 2021
4 196 >
Messages postés
419
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019

oui c'est ça, si tu veux juste le nom du fichier tu peux utiliser %%A ou %%~nxA