Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Résolu]recuperer des mots avec plusieurs "FOR
Auteur Message
Répondre en citant
Message [Résolu]recuperer des mots avec plusieurs "FOR 
Bonjour à tous et bon dimanche

un petit code tout simple, eh oui, il faut bien débuter Embarassed

les mots récupérateurs sont entre \....\ et les mots récupérés sont entre les "......."

Citation:


@echo off

title fleuve
rem dimension et couleur de la console dos
mode con LINES=35 cols=64 | color 8f
echo. & echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º script by migau º
echo º º
echo º cree le 31-10-2010 º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo. &echo.

echo Nous sommes le : %date%

echo. & echo.

echo il est : %time%

echo. & echo.


rem le contenu du fichier fleuve.txt

rem ;un texte sans valeur une vie sans vie sans fleuve sans etre tranquille
rem "la vie" est si \courte\ recuperer: la vie
rem cela "est" notre \devise\ recuperer : est
rem inviter "un" \ami\ recuperer : un
rem le fleuve le \plus\ "long" du monde recuperer : long
rem \addition\ du mot:"fleuve" recuperer le mot fleuve
rem un \enfant\ ne reste jamais "tranquille" recuperer : tranquille
rem FLEUVE
rem FLEUVE
rem fLEUVE

rem "la vie"
for /F "eol=; tokens=1,2 delims= " %%A in ('type f:\batch\fleuve.txt ^| Find /I "courte"') do echo %%A %%B

rem "est"
for /F "eol=; tokens=2 delims= " %%A in ('type f:\batch\fleuve.txt ^| Find /I "devise"') do echo %%A

rem "un"
for /F "eol=; tokens=2 delims= " %%A in ('type f:\batch\fleuve.txt ^| Find /I "ami"') do echo %%A

rem "long"
for /F "eol=; tokens=5 delims= " %%A in ('type f:\batch\fleuve.txt ^| Find /I "plus"') do echo %%A

rem "fleuve" 2eme mot car delimite par les 2 points ":"
for /F "eol=; tokens=2 delims=:" %%A in ('type f:\batch\fleuve.txt ^| Find /I "addition"') do echo %%A

rem "tranquille"
for /F "eol=; tokens=6 delims= " %%A in ('type f:\batch\fleuve.txt ^| Find /I "enfant"') do echo %%A


rem le nombre de fois que fleuve est cite est egal a 5 car avec eol=; la 1ere ligne n'est pas retenue
rem ajouter /I a la suite de Find afin de ne pas tenir compte de la casse
echo. & echo.

for /F %%A in ('type f:\batch\fleuve.txt ^| Find /I "fleuve"') do set /a COUNT=COUNT+1
echo le nombre de fois que le mot "fleuve" est cite est egal a " %COUNT% " sans tenir compte de la 1ere ligne grace au commutateur eol

echo. & echo.
pause

exit



serait il possible d' afficher tous les mots sur une même ligne pour une meilleure compréhension de la phrase finale?
et non pas les un en dessous des autres


d'avance merci



Dernière édition par migau le Ven 3 Déc 2010 - 21:37; édité 2 fois

______________________________________________________
à plus

migau
Visiter le site web du posteur
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Résolu]recuperer des mots avec plusieurs "FOR 
Peut etre que ca peut t'aider : http://batch.xoo.it/t1402-fichier-texte-de-plusieurs-lignes-sur-une-ligne.h… Okay




______________________________________________________
http://www.YagoServer.net/
Visiter le site web du posteur Yahoo Messenger Skype
Répondre en citant
Message [Résolu]recuperer des mots avec plusieurs "FOR 
BONSOIR


merci beaucoup

ton lien m'a bien aidé

par contre, tout est écrit sur la m^me ligne

je voudrais mettre en 3 lignes

la date et le jour sur une ligne

la phrase sur une ligne

le resultat de l'addition du nombre de fois ou le mot fleuve est cité sur une autre ligne

je continue de chercher

encore merci pour ton aide

Code:


@echo off

 title fleuve
rem dimmension et couleur de la console dos
mode con LINES=35 cols=64 | color 8f
 echo. & echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º  script by migau   º
echo º                    º
echo º cree le 31-10-2010 º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo. &echo.

echo Nous sommes le : %date%  >>fleuves-2.txt
@echo.>> fleuves-2.txt

echo. & echo.

echo il est : %time% >>fleuves-2.txt
@echo.>> fleuves-2.txt

echo. & echo.


rem le contenu du fichier fleuve.txt

rem un texte sans valeur une vie sans vie sans fleuve sans etre tranquille;
rem "la vie" est si \courte\ recuperer: la vie
rem cela "est" notre \devise\ recuperer : est
rem inviter "un" \ami\ recuperer : un
rem le fleuve le \plus\ "long" du monde recuperer : long
rem \addition\ du mot:"fleuve"
rem un enfant ne reste jamais  "tranquille" recuperer : tranquille
rem FLEUVE
rem FLEUVE
rem fLEUVE

rem "la vie"
for /F "eol=; tokens=1,2 delims= "  %%A  in ('type f:\batch\fleuve.txt ^| Find /I "courte"')  do echo  %%A %%B >>fleuves-2.txt
@echo.>> fleuves-2.txt

rem "est"
for /F "eol=; tokens=2 delims= "  %%A  in ('type f:\batch\fleuve.txt ^| Find /I "devise"')  do echo  %%A >>fleuves-2.txt
@echo.>> fleuves-2.txt
rem "un"
for /F "eol=; tokens=2 delims= "  %%A  in ('type f:\batch\fleuve.txt ^| Find /I "ami"')  do echo  %%A >>fleuves-2.txt
@echo.>> fleuves-2.txt
rem "long"
for /F "eol=; tokens=5 delims= "  %%A  in ('type f:\batch\fleuve.txt ^| Find /I "plus"')  do echo  %%A >>fleuves-2.txt
@echo.>> fleuves-2.txt
rem "fleuve" 2eme mot car delimite par les 2 points ":"
for /F "eol=; tokens=2 delims=:"  %%A  in ('type f:\batch\fleuve.txt ^| Find /I "addition"')  do echo  %%A >>fleuves-2.txt
@echo.>> fleuves-2.txt
rem "tranquille"
for /F "eol=; tokens=6 delims= "  %%A  in ('type f:\batch\fleuve.txt ^| Find /I "enfant"')  do echo  %%A >>fleuves-2.txt
@echo.>> fleuves-2.txt

rem le nombre de fois que fleuve est cite est egal a 5 car avec eol=; la 1ere ligne n'est pas retenue
echo. & echo.
rem en ajoutant /I a la suite de Find pour ne pas renir compte de la casse

for /F %%A  in ('type f:\batch\fleuve.txt ^| Find /I "fleuve"')  do set /a COUNT=COUNT+1
echo le nombre de fois que le mot "fleuve" est cite est egal a " %COUNT% " sans tenir compte de la 1ere ligne grace au commutateur eol>>fleuves-2.txt
@echo.>> fleuves-2.txt


@echo off

SETLOCAL ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
set FILE=fleuves-2.txt

set NEW_TXT=
for /f "tokens=*" %%A in ('type %FILE%') do (
    set NEW_TXT=!NEW_TXT! %%A
   )
for /f "tokens=2*" %%A in ('set ^| Find "NEW_TXT"') do (
    echo %%A %%B>%FILE%
   )
cls
   start /w notepad fleuves-2.txt

exit





Dernière édition par migau le Ven 5 Nov 2010 - 22:15; édité 2 fois

______________________________________________________
à plus

migau
Visiter le site web du posteur
Répondre en citant
Message [Résolu]recuperer des mots avec plusieurs "FOR 
Désolé mais je ne sais pas faire ca Confused

Stryk pourrait t'aider mais comme il a dit il sera moins souvent la Sad

Bonne chance Okay




______________________________________________________
http://www.YagoServer.net/
Visiter le site web du posteur Yahoo Messenger Skype
Répondre en citant
Message [Résolu]recuperer des mots avec plusieurs "FOR 
yago_nfs_tm_91- a écrit:
Désolé mais je ne sais pas faire ca Confused

Stryk pourrait t'aider mais comme il a dit il sera moins souvent la Sad

Bonne chance Okay



hello

c'est déjà beaucoup ce que tu m'as fait

déjà en inversant le chevron

c'est à peu près ce que je recherche

for /f "tokens=2*" %%A in ('set ^| Find "NEW_TXT"') do (
echo %%A %%B > %FILE%
)

et en inversant le chevron

for /f "tokens=2*" %%A in ('set ^| Find "NEW_TXT"') do (
echo %%A %%B < %FILE%
)


maintenant ça me donne ceci

Citation:

Nous sommes le : 05/11/2010

il est : 21:43:52,25

la vie

est

un

long

fleuve

tranquille

le nombre de fois que le mot "fleuve" est cite est egal a " 5 " sans tenir compte de la 1ere ligne grace au commutateur eol



avant ton aide , j'avais celà

Citation:


Nous sommes le : 05/11/2010 il est : 21:49:14,41 la vie est un long fleuve tranquille le nombre de fois que le mot "fleuve" est cite est egal a " 5 " sans tenir compte de la 1ere ligne grace au commutateur eol



et je souhaiterai celà

Citation:

Nous sommes le : 05/11/2010

il est : 21:43:52,25

la vie est un long fleuve tranquille

le nombre de fois que le mot "fleuve" est cite est egal a " 5 " sans tenir compte de la 1ere ligne grace au commutateur eol





______________________________________________________
à plus

migau
Visiter le site web du posteur
Répondre en citant
Message [Résolu]recuperer des mots avec plusieurs "FOR 
hello!

As-tu essayé de supprimer les
Code:
@ECHO.>>fleuves-2.txt


@+




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message [Résolu]recuperer des mots avec plusieurs "FOR 
Hello ^^

Tiens, un sujet avec pleins de boucles fOR, mouahahaha Twisted Evil

Alors, les @echo. n'y sont pour rien, le souci vient du fait que chaque mot est copié séparément dans les .txt
Il faut les assembler AVANT de les envoyer sur le .txt, genre comme ceci : Wink @++ bye

Code:

@echo off
title fleuve
mode con LINES=35 cols=64 | color 8f

set FILE=f:\batch\fleuve.txt
set NEW=fleuves-2.txt

echo. & echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º  script by migau   º
echo º                    º
echo º cree le 31-10-2010 º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo. &echo.

:: ##### Inscription dans "fleuves-2.txt"
echo Nous sommes le : %date% >%NEW%
echo. >>%NEW%
echo il est : %time% >>%NEW%
echo. >>%NEW%

:: ##### Création d'une variable par mot
for /F "eol=; tokens=1,2" %%A in ('type %FILE% ^| Find /I "courte"') do (
    for /f "tokens=*" %%C in ("%%A %%B") do (
       set WORD_1=%%~C
        )
    )
for /F "eol=; tokens=2" %%A in ('type %FILE% ^| Find /I "devise"') do (
    set WORD_2=%%~A
    )
for /F "eol=; tokens=2" %%A in ('type %FILE% ^| Find /I "ami"') do (
    set WORD_3=%%~A
    )
for /F "eol=; tokens=5" %%A in ('type %FILE% ^| Find /I "plus"') do (
    set WORD_4=%%~A
    )
for /F "tokens=4 delims=: " %%A in ('type %FILE% ^| Find /I "addition"') do (
    set WORD_5=%%~A
    )
for /F "tokens=6" %%A in ('type %FILE% ^| Find /I "enfant"') do (
    set WORD_6=%%~A
    )

:: ##### Concaténation des variables
set "TEXT=%WORD_1% %WORD_2% %WORD_3% %WORD_4% %WORD_5% %WORD_6%"

:: ##### Inscription dans "fleuves-2.txt"
echo %TEXT% >>%NEW%
echo. >>%NEW%

:: ##### Comptage de "fleuve"
for /F %%A in ('type %FILE% ^| Find /I "fleuve"') do (
    set /a COUNT=COUNT+1
   )

:: ##### Inscription dans "fleuves-2.txt"
echo le nombre de fois que le mot "fleuve" est cite est egal a " %COUNT% " sans tenir compte de la 1ere ligne grace au commutateur eol >>%NEW%

:: ##### Ouverture de fleuves-2.txt
start /w notepad %NEW%

pause>nul





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu]recuperer des mots avec plusieurs "FOR 
Bonjour à tous

merci stryk pour ton aide, et j'ai compris une bonne partie de ta correction.

et si tu permets ,je vais te le décortiquer et ainsi t'indiquer ou j'ai encore un soucis

Citation:

set FILE=f:\batch\fleuve.txt
set NEW=fleuves-2.txt


tu crées une variable avec le fichier.txt de départ ou se trouve le texte en indiquant son chemin(ce qui va allègé aussi le code)
tu crées une variable avec le fichier.txt de reception


Citation:
:: ##### Inscription dans "fleuves-2.txt"
echo Nous sommes le : %date% >%NEW%
echo. >>%NEW%
echo il est : %time% >>%NEW%
echo. >>%NEW%

tu indiques la variable de reception et non plus le fichier.txt


Citation:
:: ##### Création d'une variable par mot
for /F "eol=; tokens=1,2" %%A in ('type %FILE% ^| Find /I "courte"') do (
for /f "tokens=*" %%C in ("%%A %%B") do (
set WORD_1=%%~C
)

dans la 1 ere boucle for , tu indiques la variable et non plus le chemin du fichier.txt de départ
et dans la 1ere boucle for , tu en créés une 2eme
qui récupère les 2 ers mots "la vie" dans %%c
tu crées une variable word_1 dans laquelle est justement %%~C(la vie)

~ dans mes lectures , j'avais déjà vu ce sigle mais pas compris son utilité


Citation:

)

for /F "eol=; tokens=2" %%A in ('type %FILE% ^| Find /I "devise"') do (
set WORD_2=%%~A
)
for /F "eol=; tokens=2" %%A in ('type %FILE% ^| Find /I "ami"') do (
set WORD_3=%%~A
)
for /F "eol=; tokens=5" %%A in ('type %FILE% ^| Find /I "plus"') do (
set WORD_4=%%~A
)
for /F "tokens=4 delims=: " %%A in ('type %FILE% ^| Find /I "addition"') do (
set WORD_5=%%~A
)
for /F "tokens=6" %%A in ('type %FILE% ^| Find /I "enfant"') do (
set WORD_6=%%~A



la suite du code pour récuperer le texte

)

Citation:
:: ##### Concaténation des variables
set "TEXT=%WORD_1% %WORD_2% %WORD_3% %WORD_4% %WORD_5% %WORD_6%"



tu crées encore une variable
dans la quelle tu stocke tout le texte

Citation:

:: ##### Inscription dans "fleuves-2.txt"
echo %TEXT% >>%NEW%
echo. >>%NEW%


tu stockes ce nouveau texte dans la varaible de reception


Citation:
:: ##### Comptage de "fleuve"
for /F %%A in ('type %FILE% ^| Find /I "fleuve"') do (
set /a COUNT=COUNT+1
)

:: ##### Inscription dans "fleuves-2.txt"
echo le nombre de fois que le mot "fleuve" est cite est egal a " %COUNT% " sans tenir compte de la 1ere ligne grace au commutateur eol >>%NEW%


cette boucle for , tu la stockes dans la variable de reception

Citation:
:: ##### Ouverture de fleuves-2.txt
start /w notepad %NEW%


tu édites ta variable de reception.

je me suis peut être mal exprimé , mais j'ai compris ton cheminement.
il me reste à comprendre l'utilisation de ~
afin comprendre entièrement ton code

j'ai imprimé ce document http://www.box.net/shared/4ztsz14hcx
et ceci http://batch.xoo.it/t1517-LA-BOUCLE-FOR.htm
ainsi que tous les petits codes que je fais.

sincérement merci pour ton aide.

je continue à chercher et je pense que je vais postuler pour une formation
mais avant , il faut que j'apprenne encore les bases et lire aussi tous vos tutos,
et faire les exos de base que vous demandez à ceux qui sont en formation.

bonne soirée et merci encore




______________________________________________________
à plus

migau
Visiter le site web du posteur
Répondre en citant
Message [Résolu]recuperer des mots avec plusieurs "FOR 
Re,

~ supprime les parenthèses ...

@+ Wink




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu]recuperer des mots avec plusieurs "FOR 
stryk a écrit:
Re,

~ supprime les parenthèses ...

@+ Wink



hello

merci pour ta réponse, et j'ai lu page 78 de la formation de ADRIEN Reboisson
opérateurs unaires
ça ne m'en dit pas plus.

il est certainement encore trop tôt pour moi pour savoir tout celà.

merci à tous pour votre disponibilité et votre aide .

migau




______________________________________________________
à plus

migau
Visiter le site web du posteur
Message [Résolu]recuperer des mots avec plusieurs "FOR 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch