[ Batch ] Variable avec ( et "

Résolu
cs-bilou Messages postés 836 Statut Membre -  
cchristian Messages postés 928 Statut Membre -
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.
A voir également:

8 réponses

Gamarah
 
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 836 Statut Membre 164
 
1. Tg ?
2. Comment je devrais faire ?
0
cchristian Messages postés 928 Statut Membre 131
 
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 836 Statut Membre 164
 
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 928 Statut Membre 131
 
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 122 Statut Membre 7
 
une boucle dans ce cas n'est pas la meilleur solution.....
0
cchristian Messages postés 928 Statut Membre 131
 
Ben oui, mais qu'est-ce que tu proposes?
0
SAW5 Messages postés 122 Statut Membre 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


0
cchristian Messages postés 928 Statut Membre 131
 
Bonjour SAW5,

Avec un peu de retard. En effet, ta solution est préférable à une boucle FOR.
0
SAW5 Messages postés 122 Statut Membre 7
 
sinon pour ton lien c'est un bon tuto sur la boucle FOR
0
cchristian Messages postés 928 Statut Membre 131
 
Merci, bon courage.
0