rip_pit Posté(e) le 10 août 2012 Posté(e) le 10 août 2012 salut, je cherche a evaluer une variable composée, un exemple sera plus parlant : set mp31 = texte1 set mp32 = texte2 set mp33 = texte3 set mp34 = texte4 set mp35 = texte5 REM etc. REM un nombre aleatoire entre 1 et 10 SET /a num=(%Random% %%10)+1 SET final=mp3%num% echo %final% REM retourne un nom de variable REM comment evaluer ce nom de variable pour afficher sa valeur ? Ca donne par exemple final = mp35 mais j'aimerai arriver à final = texte5 plutot que final = mp35 Mais je n'arrive pas a évaluer ce résultat (mp35) pour obtenir la valeur de %mp35% quelqu'un à t'il une idée ?
rip_pit Posté(e) le 10 août 2012 Auteur Posté(e) le 10 août 2012 ouais ! merci pRoLaurent Arff non! j'arrive pas a le faire fonctionner
Ldfa Posté(e) le 11 août 2012 Posté(e) le 11 août 2012 Attention Rip_Pit, mais tu dois déjà le savoir, il ne faut pas d'espace lorsque tu affectes une valeur à tes variables : set mp31=texte1 set mp32=texte2 set mp33=texte3 set mp34=texte4 set mp35=texte5
Jimi Posté(e) le 11 août 2012 Posté(e) le 11 août 2012 il faut utiliser : setlocal enabledelayedexpansion qui permet de manipuler des variables dans d'autres variables ( pas tres connu, je dois dire ) @echo off set mp31=texte1 set mp32=texte2 set mp33=texte3 set mp34=texte4 set mp35=texte5 set mp36=texte6 set mp37=texte7 set mp38=texte8 set mp39=texte9 set mp310=texte10 setlocal enabledelayedexpansion set /a num=(%Random% %%10)+1 set final=mp3%num% echo !%final%! pause goto exit :exit hop
Ldfa Posté(e) le 11 août 2012 Posté(e) le 11 août 2012 Je savais que seul Jimi connaissait la solution.
POLAURENT Posté(e) le 11 août 2012 Posté(e) le 11 août 2012 bravo Jimi , ça c'est de la fonction , c'est vrai que ce n'est pas très bien documenté.
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.