Contar las palabras en un archivo de texto

pignon -  
dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   -
Hola,

Me gustaría contar el número de palabras (o más bien cadenas de caracteres) contenidas en un archivo de texto.

Ejemplo, en toto.txt tengo "cadena1 cadena2 cadena3 cadena4". ¿Cómo contar en DOS estas 4 cadenas? Si busco contar el número de cadenas, por supuesto no conozco de antemano qué habrá en toto.txt.

Si quieres saber por qué busco esto (o encontrar otra forma de hacer lo que quiero), es porque escribo en toto.txt el nombre de un archivo (con su ruta) pero el archivo puede muy bien tener espacios en su nombre. Sin embargo, hay que recuperar toda la línea. He conseguido recuperar todo eso para 2 cadenas de caracteres (separadas, por tanto, por un espacio) pero si el nombre de archivo contiene 2 espacios (o más), ya no funciona, hay que reescribir para 3 espacios... En fin, ya que no conozco de antemano el nombre del archivo, es esencial que pueda contar el número de cadenas de caracteres en la línea.

Muchas gracias ;)
Configuración: Windows XP Firefox 3.0.17

5 respuestas

  1. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 660
     
    hola
    al leer las líneas de tu archivo con
    for /f "delims=" %%a in ('type liste.txt') do
    la variable %%a contendrá el nombre con todos los espacios
    0
  2. pignon
     
    Bonjour,

    Merci pour votre réponse. J'obtiens l'erreur
    %%a était inattendu
    quand j'exécute cette ligne. Savez-vous pourquoi ?

    Merci
    0
  3. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 660
     
    no, peut-n voir le code
    C:> type f1.txt a a b b b c c c c d d d d d e e e e e e f f f f f f f C:> C:> type aa.bat @echo off for /f "delims=" %%a in ('type f1.txt') do echo %%a C:> aa a a b b b c c c c d d d d d e e e e e e f f f f f f f 
    0
  4. pignon
     
    De fait, si je fais ça dans un fichier .bat (comme vous l’avez fait), ça marche; si je mets ça directement dans l’invite de commande, j’obtiens l’erreur mentionnée plus haut. Je ne sais pas pourquoi.

    Dans le bat :
    @echo off

    for /f "delims=" %%a in ('type toto.txt') do echo %%a

    Dans l’invite de commande :
    for /f "delims=" %%a in ('type toto.txt') do echo %%a

    Et le fichier toto.txt contient :

    "C:\Documents and Settings\Administrateur\Mes documents\mon fichier.txt"

    Merci
    0
  5. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 660
     
    En el símbolo del sistema, solo debe utilizarse un único %:
    for /f "delims=" %a in ('type toto.txt') do echo %a
    0