Programme en Batch...

Nicoto -  
 Nicoto -
Bonjour,
J'ai commencé à apprendre le Batch et, pour m'amuser, j'ai essayé de créer un p'tit programme qui pourrait être utile.
Mon "programme" consiste à lire un fichier texte et exécute quelque chose quand il reconnait un mot dans le fichier ! (il n'y en a qu'un, de mot)
Voici le code:
@echo off
set /p var= < mon_fichier.txt
if "%var%"=="bonjour" ( echo Blabla )
pause>nul


Il se trouve justement que la variable var est égale à bonjour. Alors je ne comprends pas pourquoi il n'est pas écrit : Blabla >.< !
Quelqu'un peut-il m'aider? :(
Merci.

P.S. : N'allez pas me dire qu'il y a mieux comme langage informatique ;) . J'ai déjà eu droit à cette phrase dans d'autres forums.

4 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    enlever l'espace après var=
    vérifier qu'il n'y a pas d'espace en fin de ligne dans mon_fichier.txt
    vérifier en affichant : echo ++%var%++
    @echo off  
    set /p var=< mon_fichier.txt  
    if "%var%"=="bonjour" ( echo Blabla )  
    pause>nul  
    
    
    1
  2. chuka Messages postés 980 Statut Membre 379
     
    Salut,
    tu peux t'inspirer de cela:
    FINDSTR /C:%1 monfichier.txt
    if %errorlevel%==0 (echo ok) else (echo errror)

    quand tu lances ton batch, en ligne de commande(supposons qu'il se nomme test.bat), tu passe en argument le mot à rechercher....par exemple:
    test.bat bonjour
    @+
    0
  3. Nicoto
     
    Salut Chuka et merci pour ta réponse.
    J'ai testé ton Batch. Il est écrit qu'il manque un argument après le /C: . Est-ce normal?
    Peux-tu m'expliquer un peu plus le code que tu m'as montré? Je ne comprends pas très bien. :S
    Pour être plus clair, ce que je voudrais pouvoir faire , c'est d'exécuter qqu chose quand le Batch reconnait le mot... (en locurence, bonjour)
    Et si quelqu'un pourrait aussi m'expliquer pour quelle raison mon code ne fonctionne pas, ce ne serait pas de refus.
    0
    1. chuka Messages postés 980 Statut Membre 379
       
      salut,
      FINDSTR /C:%1 monfichier.txt //cherche l'occurrence, dans le fichier monfichier.txt ,%1. %1 represente l'argument que tu passes, ici le mot à chercher, lorsque tu lance le batch.
      Le batch doit être lancé en ligne de commande:
      quand tu lances ton batch, en ligne de commande(supposons qu'il se nomme test.bat), tu passe en argument le mot à rechercher....par exemple:
      test.bat bonjour
      if %errorlevel%==0 (echo ok) else (echo errror) //si tu as une occurence alors tu affiche ok, sinon error
      0
  4. Nicoto
     
    Salut Dudcek et Chuka,

    @Dubcek: O.K. j'essaye ça tout de suite. Merci ;-).

    @Chuka: Merci, c'est plus clair maintenant ^^'. J'essaye ça aussi.

    [EDIT]
    Merci Dubcek ! Le problème n'était pas dans le programme, mais dans mon fichier texte ^^'. Je me suis rendu compte qu'il y avait un espace après le mot.
    (grâce à ++%var%++).

    Merci aussi à Chuka pour m'avoir répondu si vite.
    A+
    0