[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
18210
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
1 septembre 2020
4 969
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 61318 internautes nous ont dit merci ce mois-ci

Messages postés
18210
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
1 septembre 2020
4 969
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
8
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 
Messages postés
18210
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
1 septembre 2020
4 969
cette boucle ignore les lignes vides dans le fichier
for /f "delims=" %%a in (%fichier%) do ( 
Messages postés
18
Date d'inscription
mercredi 1 août 2012
Statut
Membre
Dernière intervention
20 août 2014
8
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
10
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
10
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
18210
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
1 septembre 2020
4 969
oui, %a en interactif, %%a dans un .bat