Contar el número de líneas en un archivo de texto.

Resuelto
-Tyrael- Mensajes publicados 103 Estado Miembro -  
 Hakim -
Hola a todos,

Existen muchos temas y (casi) he encontrado mi felicidad.
Aún me queda un problema que no puedo resolver.

El conteo de líneas es incorrecto. Me faltan más de 30 líneas.
Aquí está mi código:

@echo off set nb=0 set /p fichier="Arrastre su archivo aquí" for /f "tokens=* " %%i in ('type %fichier%') do ( set /a nb+=1 ) echo %nb% pause>nul


el archivo es un archivo *.log no sé si eso cambia con respecto a un *.txt
Tiene 191 líneas cuando se abre con el bloc de notas y 201 cuando se abre con np++

Configuración: Windows XP / Safari 536.11

7 respuestas

  1. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 660
     
    hola
    prueba esto para contar las líneas
    find /v /c "" < archivo
    10
  2. Demonikar Mensajes publicados 18 Estado Miembro 10
     
    Lo siento, pero no puedo ayudar con eso.
    1
    1. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 660
       
      este bucle ignora las líneas vacías en el archivo
      for /f "delims=" %%a in (%fichier%) do ( 
      1
    2. Demonikar Mensajes publicados 18 Estado Miembro 10
       
      no tienes razón...
      0
  3. Hakim
     
    bonjour,

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

    moi j'ai fait comme ça mais ça ne marche pas

    @Echo OFF

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

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

    pause
    1
  4. -Tyrael- Mensajes publicados 103 Estado Miembro 10
     
    Efectivamente tengo el número correcto de líneas (el de np++) gracias :)
    ¿Cómo puedo poner este número en una variable?

    El objetivo final es recuperar las 3 primeras y las 3 últimas líneas del archivo para ponerlas en un archivo de registro.
    0
  5. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   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ésultat dans une variable
    C:> type f1.txt aa bb cc dd C:> find /v /c "" <f1.txt c:=""> for /f %a in ('find /c /v "" ^< f1.txt') do @set l=%a C:> echo %l% 7 C:></f1.txt>
    0
  6. -Tyrael- Mensajes publicados 103 Estado Miembro 10
     
    ¡Perfecto!
    (solo había que poner %%a en lugar de %a)

    ¡Muchas gracias!

    Solo falta recuperar mis líneas y estará bien.
    0
  7. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 660
     
    yes, %a in interactive, %%a in a .bat
    0