Les Allergies
Alimentaires
Posez votre question Signaler

[DOS] Compter les mots d'un fichier texte

pignon - Dernière réponse le 30 janv. 2010 à 12:24
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 ;)
Lire la suite 

[DOS] Compter les mots d'un fichier texte »

5 réponses
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

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

Merci
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
dansl'invite de commande, il ne faut uitiliser qu'un seul %:
for /f "delims=" %a in ('type toto.txt') do echo %a
Ajouter un commentaire
Ce document intitulé « [DOS] Compter les mots d'un fichier texte » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?