[BATCH] Compter nombre de ligne fichier texte [Résolu/Fermé]

Signaler
Messages postés
101
Date d'inscription
jeudi 10 septembre 2009
Statut
Membre
Dernière intervention
14 août 2015
-
 Hakim -
Bonjour à tous,

De nombreux sujet existe et j'y ai (presque) trouvé mon bonheur.
Il me reste un problème que je n'arrive pas à résoudre.

Le compte du nombre de ligne est faux. Il me manque plus de 30 lignes.
Voici mon code :

@echo off
set nb=0
set /p fichier="Glisser votre fichier ici"

for /f "tokens=*" %%i in ('type %fichier%') do (
set /a nb+=1
)
echo %nb%
pause>nul


le fichier est un fichier *.log je sais pas si ça change par rapport à un *.txt
Il fait 191 lignes ouvert avec le bloc note et 201 ouvert avec np++


7 réponses

Messages postés
18010
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
15 janvier 2020
4578
hello
essayer ça pour compter les lignes
find /v /c "" < fichier
10
Merci

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

CCM 80787 internautes nous ont dit merci ce mois-ci

Messages postés
18010
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
15 janvier 2020
4578
cette boucle ignore les lignes vides dans le fichier
for /f "tokens=*" %%i in ('type %fichier%') do 
passer par une boucle pour mettre le résulat dans une variable
C:> type f1.txt  
aa  

bb  

cc  

dd  
C:> find /v /c "" <f1.txt  
7  
C:> for /f %a in ('find /c /v "" ^< f1.txt') do @set l=%a  
C:> echo %l%  
7  
C:>
Messages postés
18
Date d'inscription
mercredi 1 août 2012
Statut
Membre
Dernière intervention
20 août 2014
7
je pense que j'ai la solution :

@echo off 
setlocal enabledelayedexpansion 
set nb=0 
set /p fichier="Glisser votre fichier ici" 

for /f "delims=" %%a in (%fichier%) do ( 
set /a nb=!nb!+1 
) 
echo %nb% 
pause>nul 
endlocal 
dubcek
Messages postés
18010
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
15 janvier 2020
4578
cette boucle ignore les lignes vides dans le fichier
for /f "delims=" %%a in (%fichier%) do ( 
Demonikar
Messages postés
18
Date d'inscription
mercredi 1 août 2012
Statut
Membre
Dernière intervention
20 août 2014
7
t'as pas tort ...
bonjour,

si je voudrais compter le nombre de ligne sur plusieurs fichiers TXT. je ferais comment SVP

moi j'ai fais comme ca mais ca ne marche pas


@Echo OFF

for /f "delims=;" %%a in (fichier.txt) do (


for /f "delims=" %%i in ('type %%a.txt') do ( set Compt=0 set /a Compt+=1
echo %Compt% >>resultats.txt
)
)

pause
Messages postés
101
Date d'inscription
jeudi 10 septembre 2009
Statut
Membre
Dernière intervention
14 août 2015
9
Effectivement j'ai le bon nombre de ligne (celui de np++) merci :)
Comment puis-je mettre ce nombre dans une variable ?

Le but final étant de récupérer les 3 premières et les 3 dernières lignes du fichiers pour les mettre dans un fichier log.
Messages postés
101
Date d'inscription
jeudi 10 septembre 2009
Statut
Membre
Dernière intervention
14 août 2015
9
Parfait !!
(fallait juste mettre %%a au lieu de %a)

Merci beaucoup !

Plus qu'à récupérer mes lignes et c'est bon.
Messages postés
18010
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
15 janvier 2020
4578
oui, %a en interactif, %%a dans un .bat