Programme en Batch...

Fermé
Nicoto - 26 juin 2010 à 08:01
 Nicoto - 27 juin 2010 à 17:35
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

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 26/06/2010 à 11:29
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
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
26 juin 2010 à 08:18
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
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
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
26 juin 2010 à 10:00
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
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