[ Batch ] Variable avec ( et " [Résolu/Fermé]

Signaler
Messages postés
769
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
24 février 2011
-
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
-
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...
Messages postés
769
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
24 février 2011
160
1. Tg ?
2. Comment je devrais faire ?
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
115
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        )  )
Messages postés
769
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
24 février 2011
160
Merci beaucoup cchristian.
Je débute dans la commande "for" même si je n'est pas tout comprit.
Merci.
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
115
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
Messages postés
111
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
6 janvier 2010
7
une boucle dans ce cas n'est pas la meilleur solution.....
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
115
Ben oui, mais qu'est-ce que tu proposes?
Messages postés
111
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
6 janvier 2010
7
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


Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
115
Bonjour SAW5,

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