Modifier 1 variable d'environnement en cours d'éxécution [Batch] - Shell/Batch - Programmation
Marsh Posté le 21-02-2006 à 16:50:29
- est-ce que tu utilises
setlocal
et
endlocal
- comment tu appelles ton batch ? Si c'est en doubliquant dessus, bien sûr que ça ne peut pas marcher : la modif n'est effective que pour le shell en cours.
A part ça, il faut revoir la syntaxe du if, ça ne risque pas de marcher comme tu fais là actuellement.
if /?
Marsh Posté le 21-02-2006 à 17:31:43
IF %client%==1 THEN set client=darkness ELSE (IF %client%==2 THEN set client=catacombs ELSE set client=atlantis)
c'est mieux mais ca vient pas de ca
j'exécute tout dans le meme shell, la variable client est toujours à 1 a la fin du batch c'est donc qu'elle existe toujours...
oui je l'execute en double cliquant dessus, et je n'utilise pas de setlocal/endlocal
je vois pas la franchement je suis dessus depuis 4h et ca me lourde
Marsh Posté le 21-02-2006 à 18:06:41
Déjà comment tu as inventé le then ?
Ca n'existe simplement pas.
Ensuite, comme je disais, si tu lances le batch (qui modifie la variable) par le double-clic, ça ne risque pas de marcher.
Marsh Posté le 22-02-2006 à 09:37:45
Le probleme vient de la la condition, comme ca le 1er "set" de la condition copie dans la variable tout ce qu'il y a derriere "darkness". avec des parentheses correctes ca marche en fait.
Code :
|
Marsh Posté le 22-02-2006 à 19:58:29
Dans la version finale, tu peux mettre
@echo off
au début du script. Ca t'évitera les @ partout.
Marsh Posté le 21-02-2006 à 16:29:27
J'aimerais utiliser 1 commande de ce style
sachant que l'utilisteur entre 1, 2 ou 3 dans %client% en début de batch.
Le "set" ne modifie pas la valeur de la variable dans la condition, je me retrouve avec 1, 2 ou 3 en fin de batch quand meme.
j'ai essayé de mettre une deuxieme variable d'environnement dans la condition sans résultat non plus.
Quelqu"un pourrait me donner 1 petit coup de pouce svp ? ^^