[DOS] Compter les mots d'un fichier texte
pignon
-
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je souhaiterai compter le nombre de mots (ou plutôt chaines de caractères) contenus dans un fichier texte.
Exemple, dans toto.txt j'ai "chaine1 chaine2 chaine3 chaine4". Comment compter en DOS ces 4 chaines ? Si je cherche à compter le nombre de chaines, c'est bien sûr que je ne connais pas à l'avance ce qui sera dans toto.txt
Si vous voulez savoir pourquoi je cherche ça (ou trouver un autre moyen de faire ce que je veux), c'est car j'écris dans toto.txt le nom d'un fichier (avec son chemin) mais le fichier peut très bien avoir des espaces dans son nom. Il faut pourtant que je récupère la totalité de la ligne. J'ai réussi à récupérer tout ça pour 2 chaines de caractères (séparées donc par un espace) mais si le nom de fichier contient 2 espaces (ou plus), ça ne marche plus, il faut que je recode pour 3 espaces... Bref, vu que je connais pas à l'avance le nom du fichier, il faut absolument que j'arrive à compter le nombre de chaines de caractères sur la ligne.
Merci beaucoup ;)
Je souhaiterai compter le nombre de mots (ou plutôt chaines de caractères) contenus dans un fichier texte.
Exemple, dans toto.txt j'ai "chaine1 chaine2 chaine3 chaine4". Comment compter en DOS ces 4 chaines ? Si je cherche à compter le nombre de chaines, c'est bien sûr que je ne connais pas à l'avance ce qui sera dans toto.txt
Si vous voulez savoir pourquoi je cherche ça (ou trouver un autre moyen de faire ce que je veux), c'est car j'écris dans toto.txt le nom d'un fichier (avec son chemin) mais le fichier peut très bien avoir des espaces dans son nom. Il faut pourtant que je récupère la totalité de la ligne. J'ai réussi à récupérer tout ça pour 2 chaines de caractères (séparées donc par un espace) mais si le nom de fichier contient 2 espaces (ou plus), ça ne marche plus, il faut que je recode pour 3 espaces... Bref, vu que je connais pas à l'avance le nom du fichier, il faut absolument que j'arrive à compter le nombre de chaines de caractères sur la ligne.
Merci beaucoup ;)
Configuration: Windows XP Firefox 3.0.17
5 réponses
-
hello
en lisant les lignes de ton fichier avec
for /f "delims=" %%a in ('type liste.txt') do
la variable %%a contiendra le nom avec tous les espaces -
Bonjour,
Merci pour votre réponse. J'obtiens l'erreur
%%a était inattendu
quand j'exécute cette ligne. Savez-vous pourquoi ?
Merci -
non, 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 -
En fait si je fais ça dans un .bat (comme vous l'avez fait), ça marche, si je mets ça directement dans l'invite de commande j'ai 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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
dansl'invite de commande, il ne faut uitiliser qu'un seul %:
for /f "delims=" %a in ('type toto.txt') do echo %a