Problème pour ficher batch

Fermé
Matt's - 15 avril 2010 à 15:56
 Char Snipeur - 16 avril 2010 à 08:20
bonjour j'ai un souci pour une programmation en fichier BATCH
j'ai un problème pour rejoindre le nom et l'affectation d'une variable par la valeur d'une autre, j'ai pour l'instant :

Pour déffinir la position d'affichage:

set /a pos0=%random%%%4
:er0
set /a pos1=%random%%%4
if %pos0% EQU %pos1% goto er0
:er1
set /a pos2=%random%%%4
if %pos0% EQU %pos2% goto er1
if %pos1% EQU %pos2% goto er1
:er2
set /a pos3=%random%%%4
if %pos0% EQU %pos3% goto er2
if %pos1% EQU %pos3% goto er2
if %pos2% EQU %pos3% goto er2

Pour l'affectation d'une constante

set /a nb0=%random%%%3
set /a nb1=%random%%%3
set /a nb2=%random%%%3
set /a nb3=%random%%%3

if %nb0%==0 set alea0=I
if %nb0%==1 set alea0=H
if %nb0%==2 set alea0=E

if %nb1%==0 set alea1=A
if %nb1%==1 set alea1=N
if %nb1%==2 set alea1=E

if %nb2%==0 set alea2=C
if %nb2%==1 set alea2=A
if %nb2%==2 set alea2=S

if %nb3%==0 set alea3=L
if %nb3%==1 set alea3=I
if %nb3%==2 set alea3=B

Et j'aimerai comme ceci

echo %alea0% %alea1% %alea2% %alea3%

Mais je voudrai remplacer le 0, 1, 2, 3 par %pos0%, %pos1%, %pos2%, %pos3%.

En gros afficher

echo %alea%pos0%% %alea%pos1%% %alea%pos2%% %alea%pos3%%

Cela me permetterait d'interchanger les positions aléatoirement de mes variables:
%alea0%, %alea1%, %alea2%, %alea3%.


svp help me!!!

31 réponses

karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 204
15 avril 2010 à 20:22
ou de faire ceci
echo la %pos0% est %alea0%
echo la %pos1% est %alea1%
...etc
0
Le problème est que %pos0% est un chiffre aléatoire compris entre 0 et 3. C'est sa valeur qui va définir la variable %alea*%, ce chiffre (0 ou 1 ou 2 ou 3) remplacera " * " de la variable %alea...%.
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 204
15 avril 2010 à 20:35
cela je pense qu'avec une boucle comme ( for )
0
Connais-tu le jeu de société Buggle. C'est ce jeu que je veux réaliser informatiquement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 204
15 avril 2010 à 20:44
non je le connais pas
0
Sinon j'ai trouvé ça :
set /a pos0=0
set alea0=M
set alea%pos0%

ça me donne

alea0=M

c'est ce que je veux mais sans le " alea0= "
commen dois-je faire?
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 204
15 avril 2010 à 20:52
mais j'ai remarqué que vous tappez ceci directement à l'invite de commande (cmd) et pas sur un fichier batch
parce que si celui est dans le batch il n'affiche rien
0
pour moi si, quand j'écrie
set /a pos0=0
set alea0=M
set alea%pos0%

dans fichier batch et que je le lance une fenêtre cmd s'ouvre et m'indique
alea0=M
Appuyez sur une touche pour continuer...
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 204
15 avril 2010 à 21:08
je croix que les EXTENSIONS de commande sont désactivées ( car si ils ont activées donc pas d'affichage)
0
je ne sais pas comment faire .......
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 204
15 avril 2010 à 21:22
pour l'activé ....? si oui
cmd /E:on
0