Comparaison de deux variables

Fermé
Sbignzi - 19 déc. 2012 à 14:42
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 22 déc. 2012 à 08:42
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

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
19 déc. 2012 à 15:24
hello
affiche le .bat
0
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
Merci encore une foie
0
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
20 déc. 2012 à 11:05
c'est plutot
IF %taille% EQU %VERIF% goto lvl1
IF %taille% NEQ %VERIF% goto lvl2 
0
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
Utilisateur anonyme
19 déc. 2012 à 19:49
bah, essaie de le mettre en .cmd a la place de .bat lol
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 20/12/2012 à 10:48
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
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
20 déc. 2012 à 11:11
effectivement, set taille=%~z2 fonctrionne dans un bat
0