[ Batch ] Variable avec ( et "

Résolu/Fermé
cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 - 17 févr. 2009 à 14:49
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 20 févr. 2009 à 18:07
Bonjour,
J'ai fait un petit batch pour me dire si oui ou non il y a un mot dans un fichier.
Voila mon bat:

@echo off
set aa=user_pref("network.proxy.type", 1);
FOR /f  %%i in ('TYPE fichier1.txt') DO if "%%i"=="%aa%" (Echo Oui) else echo Non
pause


Et mon fichier1.txt
user_pref("network.proxy.type", 1);


Pourtant sa m'affiche "Non".
Alors que quand je remplace :
user_pref("network.proxy.type", 1);

Par :
patate
OU
salade
Sa marche.
Je pense que sa ne marche pas avec la premier variable %aa% il y a des " et des ( et )

Si quelqu'un a une solution.
Merci.

8 réponses

1. LES CHATS NE SONT PAS DES CONNARDS DU MOINS IL LE SONT MOINS QUE TOI !
2.Tu devrais remplacer FOR par IF...
0
cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
17 févr. 2009 à 14:59
1. Tg ?
2. Comment je devrais faire ?
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
17 févr. 2009 à 15:19
Bonjour,

Essaie comme cela:

      

      set "aa=user_pref("network.proxy.type", 1);"

     FOR /F   "tokens=1 delims=" %%i IN  (fichier1.txt)   DO (
                       if "%%i"=="%aa%" (Echo Oui
                    )  else ( echo Non        )  )
0
cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
17 févr. 2009 à 16:18
Merci beaucoup cchristian.
Je débute dans la commande "for" même si je n'est pas tout comprit.
Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
17 févr. 2009 à 18:41
Bonsoir,

Merci pour le retour. A propos de la boucle FOR je te joins une référence à une discussion sur ce sujet:

http://www.commentcamarche.net/forum/affich 9602450 batch for
0
SAW5 Messages postés 111 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 6 janvier 2010 7
17 févr. 2009 à 23:09
une boucle dans ce cas n'est pas la meilleur solution.....
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
18 févr. 2009 à 00:02
Ben oui, mais qu'est-ce que tu proposes?
0
SAW5 Messages postés 111 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 6 janvier 2010 7
18 févr. 2009 à 08:38
bonjour CChristian,

cas de non fonctionnement de la boucle proposé par CS-BILOU:

Cas1: précédé par un espace
-----                 ----------------
 | 
 |  user_pref("network.proxy.type", 1);
 |
Cas2: n'est pas à l'en-tête du fichier
-----            ------------------
 |
 |abc..
 |user_pref("network.proxy.type", 1);
 |
Cas3: suite d'une chaîne
----          -------------------
 |
 |abc.. user_pref("network.proxy.type", 1);
 |


ce que je propose:

@echo off
FindStr /C:"user_pref(\"network.proxy.type\", 1);" "file.txt" >nul
If errorlevel 1 (echo non) Else (echo oui)
pause


0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
18 févr. 2009 à 16:57
Bonjour SAW5,

Avec un peu de retard. En effet, ta solution est préférable à une boucle FOR.
0
SAW5 Messages postés 111 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 6 janvier 2010 7
18 févr. 2009 à 17:23
sinon pour ton lien c'est un bon tuto sur la boucle FOR
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
20 févr. 2009 à 18:07
Merci, bon courage.
0