[BATCH] Compter nombre de ligne fichier texte

Résolu/Fermé
-Tyrael- Messages postés 101 Date d'inscription jeudi 10 septembre 2009 Statut Membre Dernière intervention 14 août 2015 - 31 juil. 2012 à 09:31
 Hakim - 20 janv. 2014 à 20:31
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

dubcek Messages postés 18567 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 1 décembre 2022 5 567
31 juil. 2012 à 09:39
hello
essayer ça pour compter les lignes
find /v /c "" < fichier
10
Demonikar Messages postés 18 Date d'inscription mercredi 1 août 2012 Statut Membre Dernière intervention 20 août 2014 10
Modifié par Demonikar le 1/08/2012 à 20:10
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 
1
dubcek Messages postés 18567 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 1 décembre 2022 5 567
2 août 2012 à 08:03
cette boucle ignore les lignes vides dans le fichier
for /f "delims=" %%a in (%fichier%) do ( 
1
Demonikar Messages postés 18 Date d'inscription mercredi 1 août 2012 Statut Membre Dernière intervention 20 août 2014 10
2 août 2012 à 20:02
t'as pas tort ...
0
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
1
-Tyrael- Messages postés 101 Date d'inscription jeudi 10 septembre 2009 Statut Membre Dernière intervention 14 août 2015 10
31 juil. 2012 à 11:34
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18567 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 1 décembre 2022 5 567
Modifié par dubcek le 31/07/2012 à 11:59
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:>
0
-Tyrael- Messages postés 101 Date d'inscription jeudi 10 septembre 2009 Statut Membre Dernière intervention 14 août 2015 10
31 juil. 2012 à 12:14
Parfait !!
(fallait juste mettre %%a au lieu de %a)

Merci beaucoup !

Plus qu'à récupérer mes lignes et c'est bon.
0
dubcek Messages postés 18567 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 1 décembre 2022 5 567
31 juil. 2012 à 12:17
oui, %a en interactif, %%a dans un .bat
0