Problème avec un programme batch

Résolu
Bonjour,

j’aimerais amélioré mon programme en batch,
car je n'est pas eu le résultat voulu ( un programme qui permet de rentrer des abréviation ( pour les convertir en mots français )).
Le problème c'est que quand je convertir une phrase, je peut seulement convertir un seul mot a la fois. Donc voici le code :

@echo off

set economique=eco
set transport=tra
set logistique=log
echo quel est ta question ?
:Q
set /p cre=
if %cre% equ %logistique% echo logistique
if %cre% equ %transport% echo transport
if %cre% equ %economique% echo economique

pause>nul
goto Q

je pense que le problème doit venir de le partie de :Q, car les commandes "echo" et "equ" ne sont pas adapter pour cet méthode.

Il faudrait par exemple avec une phrase type :

La log et le tra ce sont des moyen eco d'acheminer de la marchandise.

A avoir se résultat là :

La logistique et le transport ce sont des moyen economique d'acheminer de la marchandise.

Si quelqu’un a une idée, la solution ou avoir le résultat de la pharse type je suis preneur

Bonne journées a vous tout

2 réponses

  1. Bonjour,

    1) Tu peux remplacer "equ" par "=="

    2) Concernant la construction de ton programme, si tu dois avoir plusieurs dizaines voire centaines d'abréviations tu devrais utiliser un fichier texte pour les stocker.

    Voilà le fichier abreviations.txt :
    economique#eco
    transport#tra
    logistique#log


    Voilà le script correspondant :
    @echo off
    Setlocal EnableExtensions EnableDelayedExpansion
    chcp 28591 >nul

    :debut
    set "phrase="
    cls & echo. & echo quel est la phrase à convertir ?
    set /p "phrase="

    for /f "tokens=1,2 delims=#" %%A in (abreviations.txt) do set phrase=!phrase:%%B=%%A!

    echo. & echo !phrase!

    echo. & pause
    goto :debut


    1. Merci beaucoup barnabe0057,
      dans le fichier abreviations.txt je peux en rajouter ou en modifié,
      sa fonctionne à la perfection même avec phrase type. Sa va beaucoup m'aidée pour faire mes synthèse en CEJM vu avec le prof il nous laisse pas de pause avec ses long phrases.
    2. Culture, Economique, Juridique et Managériale
      c'est niveau BAC+2 = BTS
  2. Il a juste 2 petit problème :
    le premier c'est lorsque j'ai écrit par exemple professionnelle dans le programme et sa me marque pourofessionnelle, car l'abréviation de pr (de pour) est prie en compte. Dans se cas il faudrait que les abréviation soit ( isolé ) par exemple : lorsque qu'on écrit professionnelle que le pr de professionnelle ne soit pas prie en compte comme étant une abréviation. Mais que le pr tout seul soit prie comme étant une abréviation (de pour). j'ai essayer de mettre des espace comme se là pour# pr mais cela donne toujours le même résulta. Et pour l'autre problème les accent des mots, je savait que se problème exister avec les caractère spéciaux en batch comme économique en économique.
    1. Je n'ai aucun problème d'accent chez moi, as-tu bien mis la ligne suivante :
      chcp 28591 >nul

      Concernant l'autre problème il suffit de mettre des espaces dans le script comme ceci :

      @echo off
      Setlocal EnableExtensions EnableDelayedExpansion
      chcp 28591 >nul

      :debut
      set "phrase="
      cls & echo. & echo quel est la phrase à convertir ?
      set /p "phrase="

      for /f "tokens=1,2 delims=#" %%A in (abreviations.txt) do set phrase=!phrase: %%B = %%A !

      echo. & echo !phrase!

      echo. & pause
      goto :debut
    2. oui je l'ai bien recopier
      chcp 28591 >nul

      pour la correction du code sa na pas marcher, mais j'ai amélioration avec l’exemple
      pr 
      ne modifie plus le mot professionnelle en pourofessionnelle. La correction c'est
      pour#pr 
      avec un espace après le pr . Il n'a plus le problème de l'abréviation qui change le mot mais ils prenne de l'espace 2 exemple : pr et bn conversion pouret bien
      bn et pr conversion bienet pour

      essayerez de voir le problème avec l'espace
      merci de ma voir fait trouver l'idée pour le changement de mot
    3. de rien.

      essaie chcp 65001 >nul au lieu de chcp 28591 >nul
    4. MERCI BEAUCOUP le problème des caractère spéciaux est régler et j'ai trouver le problème de l'espace, il fallait mettre un espace de
      pour #pr 
      je l'ai fait avec mes abréviation quelque exemple :
      économique #éco 
      transport #tra
      logistique #log
      service #ser
      bien #bn
      fonction #fon
      entreprise #ent
      offre #off
      demande #dem
      stock #sto
      commerce #com
      finance #fin
      inventaire #inv
      système #sys
      prix #px
      publique #pub
      doit #dt
      pour #pr
      permet #per


      "quelque fois il a certain problèmes qu'il sont bête mais qui sont sous nos yeux"
      encore une fois MERCI BEAUCOUP, il ne devrai plus avoir de problème et de bien me rappeler que les espaces sont très important.