BATCH: Compter le nombre de ligne de plusieur fichier

Résolu/Fermé
poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019 - 26 mars 2017 à 22:30
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 - 27 mars 2017 à 01:04
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 ^^)

A voir également:

1 réponse

barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917
Modifié le 27 mars 2017 à 00:22
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
poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019 30
27 mars 2017 à 00:31
Ah super !! Merci !
0
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917 > poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019
27 mars 2017 à 00:35
De rien ;)
0
poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019 30
Modifié le 27 mars 2017 à 00:59
Ya un truc que je comprends pas bien, c'est l'utilisation de %%~dpnxA
Il sert juste a recupere le chemin ?
0
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917 > poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019
Modifié le 27 mars 2017 à 01:06
oui c'est ça, si tu veux juste le nom du fichier tu peux utiliser %%A ou %%~nxA
0