Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[R] égalité if non reconnue
Auteur Message
Répondre en citant
Message [R] égalité if non reconnue 
Bonsoir
Comme l'indique le titre, j'ai un problème de if. J'ai deux strings totalement identiques, mais il ne veut pas me le détecter.
Code:
for /F "tokens=2 delims==" %%A in ('type AppFiles\%deluser%.ini ^| find "pass"') do set delpass="%%A"

::By SachaDee® (©) 2015

   ::La longeur du Mot de passe
    set "$Long=20"
 
    ::Les autres variables
    set "$l="
    set "$C=0"
     
    :testdel2
    if %$c%==%$Long% goto:toolongdel2
    set "$T="
   batbox /g 10 12 /c 0x%couleur% /d "%$l% "
    For /F "delims=" %%# In ('Xcopy /W "%~f0" "%~f0" 2^>Nul') Do If Not Defined $T Set "$T=%%#"
     
    set "$testenter=%$T:~-1%"
    if not defined $Testenter goto:nextdel2
     
    if %$T:~-1%== (
     if not %$C%==0 (
      Set "$l=%$l:~0,-1%"
      set /a $C-=1)
     ) else (
      Set "$l=%$l%%$T:~-1%"
      set /a $C+=1)
    
   if "%delpass%"=="%$l%" (
   goto:delkey
   )

    goto:testdel2


J'ai tout essayé. Une solution ?

ps: je parle du dernier, ligne 29



Dernière édition par Raiseit le Jeu 29 Déc 2016 - 20:18; édité 1 fois

______________________________________________________
Raiseit


Des jeux gratuits (ou presque ) <> Serveurs minecraft gratuit <> Notre chaine youtube <> Mon projet

IL y a 10 types de personnes: ceux qui comprennent le binaire et les autres :-)
Visiter le site web du posteur Skype
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Re: égalité if non reconnue 
Raiseit a écrit:
Bonsoir
Comme l'indique le titre, j'ai un problème de if. J'ai deux strings totalement identiques, mais il ne veut pas me le détecter.
Code:
for /F "tokens=2 delims==" %%A in ('type AppFiles\%deluser%.ini ^| find "pass"') do set delpass="%%A"

::By SachaDee® (©) 2015

   ::La longeur du Mot de passe
    set "$Long=20"
 
    ::Les autres variables
    set "$l="
    set "$C=0"
     
    :testdel2
    if %$c%==%$Long% goto:toolongdel2
    set "$T="
   batbox /g 10 12 /c 0x%couleur% /d "%$l% "
    For /F "delims=" %%# In ('Xcopy /W "%~f0" "%~f0" 2^>Nul') Do If Not Defined $T Set "$T=%%#"
     
    set "$testenter=%$T:~-1%"
    if not defined $Testenter goto:nextdel2
     
    if %$T:~-1%== (
     if not %$C%==0 (
      Set "$l=%$l:~0,-1%"
      set /a $C-=1)
     ) else (
      Set "$l=%$l%%$T:~-1%"
      set /a $C+=1)
    
   if "%delpass%"=="%$l%" (
   goto:delkey
   )

    goto:testdel2


J'ai tout essayé. Une solution ?

ps: je parle du dernier, ligne 29


Quand c'est comme ça, il faut isoler chaque morceau du code, les tester et regarder le contenu des variables.
Quand je teste la ligne 29 je vois que ton code entoure la variable delpass une deuxième fois avec des guillemets

Donc voici ce qu'il teste : ""test""=="test"
Donc c'est faux Mr. Green

Donc ceci devrait fonctionner :
Code:
for /F "tokens=2 delims==" %%A in ('type AppFiles\%deluser%.ini ^| find "pass"') do set delpass="%%A"

::By SachaDee® (©) 2015

   ::La longeur du Mot de passe
    set "$Long=20"
 
    ::Les autres variables
    set "$l="
    set "$C=0"
     
    :testdel2
    if %$c%==%$Long% goto:toolongdel2
    set "$T="
   batbox /g 10 12 /c 0x%couleur% /d "%$l% "
    For /F "delims=" %%# In ('Xcopy /W "%~f0" "%~f0" 2^>Nul') Do If Not Defined $T Set "$T=%%#"
     
    set "$testenter=%$T:~-1%"
    if not defined $Testenter goto:nextdel2
     
    if %$T:~-1%== (
     if not %$C%==0 (
      Set "$l=%$l:~0,-1%"
      set /a $C-=1)
     ) else (
      Set "$l=%$l%%$T:~-1%"
      set /a $C+=1)
    
   if %delpass%=="%$l%" (
   goto:delkey
   )

    goto:testdel2



Un petit conseil : Toujours avoir confiance aux if mais pas aux string
Les if eux ne mentent jamais par rapport aux strings, méfie toi + des string que des if Okay

Bon après si tu fais n'importe quoi avec les if, là méfie toi des deux lol Okay
Genre si tu fais ceci :
Code:
if exit test.txt goto :ok





______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message [R] égalité if non reconnue 
Merci, ça fonctionne. Pourtant, quand j'affichais mes deux variables dans la console, elles étaient totalement identiques.

Citation:
Bon après si tu fais n'importe quoi avec les if, là méfie toi des deux lol Okay
Genre si tu fais ceci :
Code:
if exit test.txt goto :ok
Very Happy




______________________________________________________
Raiseit


Des jeux gratuits (ou presque ) <> Serveurs minecraft gratuit <> Notre chaine youtube <> Mon projet

IL y a 10 types de personnes: ceux qui comprennent le binaire et les autres :-)
Visiter le site web du posteur Skype
Répondre en citant
Message [R] égalité if non reconnue 
Raiseit a écrit:
Merci, ça fonctionne. Pourtant, quand j'affichais mes deux variables dans la console, elles étaient totalement identiques.


Bizarre
Je pense que tu n'as pas attention aux guillemets alors Okay

Voici ce que j'ai fais :

Code:
@echo off

for /F "tokens=2 delims==" %%A in ('type h.txt ^| find "pass"') do set delpass="%%A"
 
::By SachaDee® (©) 2015
 
   ::La longeur du Mot de passe
    set "$Long=20"
 
    ::Les autres variables
    set "$l="
    set "$C=0"
     
    :testdel2
    if %$c%==%$Long% goto:toolongdel2
    set "$T="
   echo;%$1%
   ::batbox /g 10 12 /c 0x%couleur% /d "%$l% "
    For /F "delims=" %%# In ('Xcopy /W "%~f0" "%~f0" 2^>Nul') Do If Not Defined $T Set "$T=%%#"
     
    set "$testenter=%$T:~-1%"
    if not defined $Testenter goto:nextdel2
     
    if %$T:~-1%== (
     if not %$C%==0 (
      Set "$l=%$l:~0,-1%"
      set /a $C-=1)
     ) else (
      Set "$l=%$l%%$T:~-1%"
      set /a $C+=1)

   echo;"%delpass%"=="%$l%"

   if "%delpass%"=="%$l%" (
   goto:delkey
   )
 
    goto:testdel2





______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Message [R] égalité if non reconnue 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch