IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Batch - Deux boucle For imbriquées plus un FC


Sujet :

Windows

  1. #1
    Inactif Avatar de Lorponos
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 243
    Points : 85
    Points
    85
    Par défaut Batch - Deux boucle For imbriquées plus un FC
    Bonjour, je suis en train de créer un script batch un peu spécial et j'ai un petit souci, au début j'étais parti avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Fc /l /n "%RepSource%\notepad.exe" "%WinDir%\System32\notepad.exe" >nul 
    If not %ErrorLevel%== 0 ( xcopy "%RepSource%\notepad.exe" "%windir%\System32\dllcache\*.*" /S /I /H /Q /R /Y & xcopy "%RepSource%\notepad.exe" "%windir%\System32" /S /I /H /Q /R /Y & xcopy %RepSource%\notepad.exe "%windir%\*.*" /S /I /H /Q /R /Y & color 0E 
    ) else ( echo Mise … jour OK pour Bloc Note )
    Ce scipt compare un fichier stoker dans un répertoire source avec un autre fichier dans le répertoire System32 de Windows, si les fichiers sont différents la variable %ErrorLevel% déclenche la copie du fichier dans le répertoire source sur le fichier du répertoire System32, mais ce script c'est pour un seul fichier, maintenant je veux faire quelque un script qui test plusieurs fichiers, grâce à une boucle For, voilà où j'en suis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For /r "%RepSource%\" %%i In (*.*) Do ( 
    For /f "delims=" %%j In ('Fc /l /n "%%i" "%WinDir%\System32\%%~nxi"') Do xcopy "%%i" "%windir%\System32\dllcache\*.*" /S /I /H /Q /R /Y & xcopy %%i" "%windir%\System32" /S /I /H /Q /R /Y & xcopy %%i "%windir%\*.*" /S /I /H /Q /R /Y & color 0E 
    )
    Là ce que je veus plus précisément, c'est que le script compare tous les fichiers stockés dans le répertoire source avec les fichiers de même noms dans le répertoire System32, j'ai donc fais une première boucle For qui fouille le répertoire source, puis une deuxième boucle For imbriquée qui elle compare les fichiers listés dans le répertoire source avec les fichiers de même noms dans le répertoire System32, ce que je n'arrive pas à faire c'est faire en sorte que la deuxième boucle For ne copie que les fichier dans la source et la cible sont différentes, la variable %ErrorLevel% ne fonctionne pas entre les parenthèses d'une boucle For, donc la je ne sais pas quoi faire, quelqu'un saurait-il m'éclairer ?

  2. #2
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Ca peut etre ? En bidouillant un peu le test.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For /r "%RepSource%\" %%i In (*.*) Do (
       Fc /l /n "%%i" "%WinDir%\System32\%%~nxi" | findstr FC > tmp.txt
       if "FC : aucune..."==<tmp.txt ( REM pas de copie 
       ) else ( REM copie )
    )

    Sinon à tester mais pour le %ErrorLevel% qui marche pas, essaye avec les expansions retardées de variables.
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  3. #3
    Inactif Avatar de Lorponos
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 243
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Drizzt [Drone38]
    Ca peut etre ? En bidouillant un peu le test.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For /r "%RepSource%\" %%i In (*.*) Do (
       Fc /l /n "%%i" "%WinDir%\System32\%%~nxi" | findstr FC > tmp.txt
       if "FC : aucune..."==<tmp.txt ( REM pas de copie 
       ) else ( REM copie )
    )

    Sinon à tester mais pour le %ErrorLevel% qui marche pas, essaye avec les expansions retardées de variables.
    Bonjour et merci beaucoup

    J'ai essayer d'adapter un peut ton code, mais il ne fonctionne pas.
    Dans ton code cette ligne est elle sensé créer le fichier.txt uniquement si les fichiers sont différent ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       Fc /l /n "%%i" "%WinDir%\System32\%%~nxi" | findstr FC > tmp.txt
    Que dois-je faire avec les expansions retardées de variables ?

  4. #4
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Nop mon code cree le fichier à chaque fois et si une ligne commençant par FC est présente la met dedans.
    Sinon il cree un fichier vide.

    Les lignes commençant par FC sont des lignes d'informations de la commande FC.
    Ex: FC : impossible d'ouvrir test.txt - Ce fichier ou dossier n'existe pas
    ou FC : aucune différence trouvée

    C'est cette deuxieme chaine qui t'interesse.
    Tu dois donc tester si ce qu'il y a dans le fichier est égal à cette chaine ou pas. Normalement le fichier ne doit contenir qu'une seule ligne (à confirmer cpdt je ne connais pas bien la commande fc) donc tu peux l'utiliser directement avec < dans un test.
    Tu pourrais juste tester si le fichier est vide ou pas (pas de ligne commençant par FC si les fichiers sont differents) mais tu louperais les cas d'erreur comme celui ou le fichier n'existe pas.


    Pour les expansions retardees de variable je ne sais pas du tout si ça marchera mais pour tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocal ENABLEDELAYEDEXPANSION
    Ensuite au lieu de mettre %ErrorLevel% tu utilises !ErrorLevel!.

    Pour info les expansions retardés de variables evite que tes variables soient remplacés par leur valeurs trop tot.
    Ex extrait de l'aide de la commande SET:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    set VAR=avant
    if "%VAR%" == "avant" (
        set VAR=après;
        if "%VAR%" == "après" @echo Cela marche si vous lisez ce message
    )
    --> Ne fonctionne pas car %VAR% est remplacé dès la lecture de la commande IF

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     set VAR=avant
     if "%VAR%" == "avant" (
         set VAR=après
         if "!VAR!" == "après" @echo Cela marche si vous lisez ce message
     )
    --> Fonctionne car !VAR! est remplacé à sa lecture.
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  5. #5
    Inactif Avatar de Lorponos
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 243
    Points : 85
    Points
    85
    Par défaut
    J'ai modifier un peu le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For /r "%RepSource%\" %%i In (*.*) Do (
     Fc /l /n "%%i" "%WinDir%\System32\%%~nxi" | findstr FC  > "fc.txt"
      For /f "tokens=2 delims=:" %%j In ('Type "fc.txt"') Do (
        If /i "%%i"==" aucune diff‚rence trouv‚e" ( 
         echo  OK  
        ) else ( 
         echo  Diff‚rent 
       )
      )
    )
    Mais c'est pas encore ça, cette partie du code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        If /i "%%i"==" aucune diff‚rence trouv‚e" ( 
         echo  OK  
        ) else ( 
         echo  Diff‚rent 
       )
    Doit afficher "OK" si la chaîne "aucune diff‚rence trouv‚e" est détectée dans le fichier "fc.txt", et afficher "Diff‚rent" si la chaîne "aucune diff‚rence trouv‚e" n'est pas détectée, mais que la chaîne soit détectée ou pas le résultat est toujours "Diff‚rent".

    Vois tu ce qui ne va pas ?

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Mais ça ne marche que si les extensions sont activées.

    J'avais fait ce code pour tester (préambule d'un de mes batchs):
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    REM on vérifie le mode "Delayed Variable Expansion" qui est nécessaire pour la boucle for
     
    SET testDelay=avant
    IF "%testDelay%" == "avant" (
    	SET testDelay=apres
    	IF NOT "!testDelay!" == "apres" (
    		ECHO Le mode "Delayed Variable Expansion" doit etre active
    		ECHO "(option CMD /V:ON)"
    		EXIT /B 1
    	)
    )
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Inactif Avatar de Lorponos
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 243
    Points : 85
    Points
    85
    Par défaut
    Ah, désolé pour mon message précédent, il falait mettre %%j au lieu de %%i:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        If /i "%%J"==" aucune diff‚rence trouv‚e" ( 
         echo  OK  
        ) else ( 
         echo  Diff‚rent 
       )

  8. #8
    Inactif Avatar de Lorponos
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 243
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Médinoc
    Mais ça ne marche que si les extensions sont activées.

    J'avais fait ce code pour tester (préambule d'un de mes batchs):
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    REM on vérifie le mode "Delayed Variable Expansion" qui est nécessaire pour la boucle for
     
    SET testDelay=avant
    IF "%testDelay%" == "avant" (
    	SET testDelay=apres
    	IF NOT "!testDelay!" == "apres" (
    		ECHO Le mode "Delayed Variable Expansion" doit etre active
    		ECHO "(option CMD /V:ON)"
    		EXIT /B 1
    	)
    )
    C'est quoi un préambule ?

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    L'introduction, le tout début, quoi.
    Le code qui faisait le boulot était derrière.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Inactif Avatar de Lorponos
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 243
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Médinoc
    L'introduction, le tout début, quoi.
    Le code qui faisait le boulot était derrière.
    Merci pour l'info

  11. #11
    Inactif Avatar de Lorponos
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 243
    Points : 85
    Points
    85
    Par défaut
    J'y suis presque:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For /r "%RepSource%\" %%i In (*.*) Do (
     Fc /l /n "%%i" "%WinDir%\System32\%%~nxi" | findstr FC  > "fc.txt"
      For /f "tokens=2 delims=:" %%j In ('Type "fc.txt"') Do (
        If /i "%%j"==" aucune diff‚rence trouv‚e" ( 
         echo  OK  
        ) else ( 
         echo  Diff‚rent 
       )
      )
    )
    Bon maintenant tout va bien mis à par un petit détail, quand un fichier source et différent de la cible, le mesage "Diff‚rent" s'affiche autand de foi dans la fenêtre dos qu'il y a de lignes dans le fichier "fc.txt", sauriez vous ce que je peu faire pour qu'il ne s'affiche qu'un seul foi ?

  12. #12
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Arf c'est vrai que tu compares des binaires, donc FC il peut te le trouver plusieurs fois dans le rapport de comparaison ...

    Et bien tu peux affiner le findstr, au lieu de faire findstr FC fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    findstr /C:"aucune diff‚rence trouv‚e".
    La normalement il te retournera une ligne quand les fichiers sont identiques et rien sinon. (Du coup il ira meme plus dans ton for si les fichiers sont différents, for qui doit pouvoir alors etre remplacé par un if simple)
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  13. #13
    Inactif Avatar de Lorponos
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 243
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Drizzt [Drone38]
    Arf c'est vrai que tu compares des binaires, donc FC il peut te le trouver plusieurs fois dans le rapport de comparaison ...

    Et bien tu peux affiner le findstr, au lieu de faire findstr FC fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    findstr /C:"aucune diff‚rence trouv‚e".
    La normalement il te retournera une ligne quand les fichiers sont identiques et rien sinon. (Du coup il ira meme plus dans ton for si les fichiers sont différents, for qui doit pouvoir alors etre remplacé par un if simple)
    Merci encore

    Quel boucle for devien inutile ?

  14. #14
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Celle la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For /f "tokens=2 delims=:" %%j In ('Type "fc.txt"') Do (
    Comme tu n'as normalement qu'une ligne ou zero dans ton fichier texte, un simple if peut suffir.

    Mais comme tu as mis resolu j'imagine que le pb est reglé
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  15. #15
    Inactif Avatar de Lorponos
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 243
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Drizzt [Drone38]
    Celle la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For /f "tokens=2 delims=:" %%j In ('Type "fc.txt"') Do (
    Comme tu n'as normalement qu'une ligne ou zero dans ton fichier texte, un simple if peut suffir.

    Mais comme tu as mis resolu j'imagine que le pb est reglé
    Merci encore

    Ben en faite le problème est résolu puisque le code fonctionne, mais si je peux encore optimiser le code, c'est mieux.

    Mais je ne vois pas comment faire, si je suprimme cette boucle comment le If pourat-il lire le fichier.txt ?

  16. #16
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Bah en fait ce à quoi je pensait ne marche pas vraiment (le coup du if "test"==<fichier.txt il aime pas trop, j'avais jamais teste ça me paraissait une bonne idee mais non )
    Donc c'est bien avec le for.

    Tu peux à la limite tester la taille du fichier vu que normalement tu ne recuperes qu'une ligne ou zero mais je suis pas tres fan, tu perds quand meme du controle sur le contenu du fichier.
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  17. #17
    Inactif Avatar de Lorponos
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 243
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Drizzt [Drone38]
    Bah en fait ce à quoi je pensait ne marche pas vraiment (le coup du if "test"==<fichier.txt il aime pas trop, j'avais jamais teste ça me paraissait une bonne idee mais non )
    Donc c'est bien avec le for.

    Tu peux à la limite tester la taille du fichier vu que normalement tu ne recuperes qu'une ligne ou zero mais je suis pas tres fan, tu perds quand meme du controle sur le contenu du fichier.

    OK, ben je vais laisser mon script tel qu'il est alors.

  18. #18
    Inactif Avatar de Lorponos
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 243
    Points : 85
    Points
    85
    Par défaut
    Ah, un autre probléme!

    Le script ne détecte pas les fichiers d'extenssion .dbl, comme wpa.dbl.

    Saurais tu comment je peu réglé ça ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/07/2014, 10h25
  2. deux boucles for non imbriquées
    Par ebenmous dans le forum Langage
    Réponses: 3
    Dernier message: 24/06/2011, 11h53
  3. Sortir de deux boucles FOR-END imbriquées
    Par Nabuchodonosor15 dans le forum MATLAB
    Réponses: 5
    Dernier message: 31/08/2009, 09h58
  4. Réponses: 3
    Dernier message: 24/05/2007, 17h56
  5. [Debutant] Batch et Boucle for
    Par ludovic.fernandez dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 06/05/2004, 19h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo