[DOS] Compter les mots d'un fichier texte

Fermé
pignon - 29 janv. 2010 à 23:45
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 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 ;)
A voir également:

5 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
30 janv. 2010 à 07:56
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
0
Bonjour,

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

Merci
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
30 janv. 2010 à 12:03
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
0
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
30 janv. 2010 à 12:24
dansl'invite de commande, il ne faut uitiliser qu'un seul %:
for /f "delims=" %a in ('type toto.txt') do echo %a
0