Comparaison de deux variables

Bonjour,

Je suis sous windows xp et je veux automatiser une tache repetitive et ce en utilisant un script .bat.Mais j'ai un grand souci avec la condition if elle marche quand je saisis la ligne de commande directement dans le mode console CMD et quand je l'utilise à l'interieur d'un fichier .bat il ne s'execute même pas !!!
Ce que je veux exactement c de comparer deux variables et si ils ne sont pas egaux j'execute une commande.Voila ce que j'ai mis :

set ScoreJoueur=0
set ScoreNormal=1

If "%ScoreJoueur%" NEQ "%ScoreNormal%" ECHO dawdi rajl mzyan

Mais ça marche pas !!!
Merci de m'aider.

3 réponses

  1. Contributeur
    hello
    affiche le .bat
    0
    1. Je me permet de décrire ce dont j'ai besoin avec tous ce que j'ai fais en fichier .bat :
      on lance la génération d'un fichier texte qui a pour extension .dat (un logiciel qui s'en charge de la génération du .dat) et cette étape prend un peu de temps.c'est à ce moment là que je veux que mon script intervient pour exécuter une commande . En effet,l'indice qui me permet de savoir si le .dat est terminé ou nn c le fait que le fichier se termine par un mot RETURN qui signifie qu'en fait la génération est terminée bel et bien.
      Bon pour cela j'ai pensé à un script qui vérifie l'existante de ce mot RETURN, une foie trouvé il exécute une commande et si non il continu la recherche. et pratiquement je me suis servis d'une commande qui cherche le mot RETURN dans le fichier .dat si ce mot est trouvé elle génère un fichier et en écrire le non du fichier .dat et si non elle génère ce même fichier mais vide.
      voila la commande FINDSTR /S /M "RETURN" *.dat > _map-corrompu.txt
      et ensuite pour terminer mon script j'ai utilisé la condition IF pour exécuter la commande C:\SamcefV13.1-04_x64\Exec\samcef ba,as Serrage_it5_avec_oval n 2 si la taille du fichier est non nul et voila ce bout du code If "%taille%" NEQ "%VERIF%"
      C:\SamcefV13.1-04_x64\Exec\samcef ba,as Serrage_it5_avec_oval n 2

      Voila mon script .bat
      @ echo off
      d:
      cd \Saad\Pierre_Antoine\ca_marche
      set VERIF=0
      set SAM_ZONE=90000000
      set SAM_NN50=6000
      :DEBUT
      FINDSTR /S /M "RETURN" *.dat > _map-corrompu.txt

      set fichier=c:\bookmarks.html

      %1 %0 :: _map-corrompu.txt
      set taille=%~z2

      echo la taille de votre fichier est %taille%

      If "%taille%" NEQ "%VERIF%"
      C:\SamcefV13.1-04_x64\Exec\samcef ba,as Serrage_it5_avec_oval n 2
      ELSE goto DEBUT
      exit
      0
    2. Merci encore une foie
      0
    3. Bonjour,
      J'ai essayé d'ecrire le code dans un fichier .CMD avec quelque modifications et ça marche sauf que j'ai encore un petit souci.J'ai mis deux conditions : si la condition une est vraie il j'execute des commandes et si la deuxième est vraie il execute d'autre commande. Mais le problème c'est qu'il passe aux commandes de la deuxième condition même si elle n'est pas vérifiée
      voila le code
      @ echo off
      d:
      cd \Saad\Pierre_Antoine\ca_marche\Ouiii
      set VERIF=0
      set SAM_ZONE=90000000
      set SAM_NN50=6000
      set fichier=c:\bookmarks.html
      :lvl1
      FINDSTR /S /M "RETURN" *.dat > _map-corrompu.txt

      %1 %0 :: _map-corrompu.txt
      set taille=%~z2
      echo la taille de votre fichier est %taille%

      IF %%taille EQU %%VERIF goto lvl1
      IF %%taille NEQ %%VERIF goto lvl2

      :lvl2
      C:\SamcefV13.1-04_x64\Exec\samcef "ba,as" Serrage_it5_avec_oval n 2
      0
    4. Contributeur
      c'est plutot
      IF %taille% EQU %VERIF% goto lvl1
      IF %taille% NEQ %VERIF% goto lvl2 
      0
    5. WOOOOOOW merci infiniment dubcek t'as vraiment sauvais mon script ça marche maintenant cette etape est oook
      est ce que je peux executer ma dérnière ligne sans pressé entré genre start () !!!
      parce que si c'est necèssaire de le faire mon script n'aurra pas de valeur (je veux qu'elle s'execute à mon absence)
      0
  2. bah, essaie de le mettre en .cmd a la place de .bat lol
    0
    1. Contributeur
      que fait cette ligne ? %1 %0 :: _map-corrompu.txt
      cette notation ne fonctionne que dans une boucle for : set taille=%~z2
      essayer:
      for %t in ( _map-corrompu.txt) do echo taille=%~zt
      0
      1. Je sais pas exactement mais on gros elle joue avec les variables d'environnement et me sorte finalement la taille de mon fichier _map-corrompu.txt
        0
      2. Contributeur
        effectivement, set taille=%~z2 fonctrionne dans un bat
        0