[BATCH] Compter nombre de ligne fichier texte

Résolu
-Tyrael- Messages postés 103 Statut Membre -  
 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

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    essayer ça pour compter les lignes
    find /v /c "" < fichier
    10
  2. Demonikar Messages postés 18 Statut Membre 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
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      cette boucle ignore les lignes vides dans le fichier
      for /f "delims=" %%a in (%fichier%) do ( 
      1
    2. Demonikar Messages postés 18 Statut Membre 10
       
      t'as pas tort ...
      0
  3. Hakim
     
    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
  4. -Tyrael- Messages postés 103 Statut Membre 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.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  7. -Tyrael- Messages postés 103 Statut Membre 10
     
    Parfait !!
    (fallait juste mettre %%a au lieu de %a)

    Merci beaucoup !

    Plus qu'à récupérer mes lignes et c'est bon.
    0
  8. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    oui, %a en interactif, %%a dans un .bat
    0