Problème pour ficher batch
Fermé
Matt's
-
15 avril 2010 à 15:56
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 16 avril 2010 à 08:20
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 16 avril 2010 à 08:20
A voir également:
- Problème pour ficher batch
- Fichier batch - Guide
- Ficher rar - Guide
- Batch renommer une partie du nom de plusieurs fichiers - Guide
- Color batch - Forum Autoit / batch
- Script batch utile ✓ - Forum Programmation
31 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
16 avril 2010 à 08:20
16 avril 2010 à 08:20
Je pense vraiment que ce que tu veux faire directement n'est pas possible en batch, qui est, il faut le reconnaitre, un interpréteur de script assez basique.
Ce que tu cherches à faire tiens plus de la programmation, ce n'est pas le but de cmd de faire des jeux.
Néanmoins, je pense que tu peut t'en sortir en passant par un second fichier bat.
après avoir initialiser toutes tes variables, tu fais :
Ce n'est pas très élégant mais ça devrais fonctionner.
Ce que tu cherches à faire tiens plus de la programmation, ce n'est pas le but de cmd de faire des jeux.
Néanmoins, je pense que tu peut t'en sortir en passant par un second fichier bat.
après avoir initialiser toutes tes variables, tu fais :
echo set alea0=%alea0% > tmp.bat echo set alea1=%alea1% >>tmp.bat ... echo %alea%pos0%% %alea%pos1%% %alea%pos2%% %alea%pos3%%>>tmp.bat tmp.bat del tmp.bat
Ce n'est pas très élégant mais ça devrais fonctionner.
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
16 avril 2010 à 07:28
16 avril 2010 à 07:28
hello
C:> type bb.bat @echo off set alea0=0000000 set alea1=1111111 set alea2=2222222 set alea3=3333333 set alea4=4444444 set x=2 for /f "delims==, tokens=2" %%a in ('set alea%x%') do echo alea%x% %%a set x=4 for /f "delims==, tokens=2" %%a in ('set alea%x%') do echo alea%x% %%a set x=0 for /f "delims==, tokens=2" %%a in ('set alea%x%') do echo alea%x% %%a C:> bb alea2 2222222 alea4 4444444 alea0 0000000 C:>
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
203
15 avril 2010 à 16:14
15 avril 2010 à 16:14
j'ai pas compis ton but
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
15 avril 2010 à 16:47
15 avril 2010 à 16:47
Pas évident...
essai de voir avec l'expansion retardé de variable.
Sinon, cherche la concaténation...
Mais ça me semble difficile. En bash, ça aurait été mieux.
essai de voir avec l'expansion retardé de variable.
Sinon, cherche la concaténation...
Mais ça me semble difficile. En bash, ça aurait été mieux.
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
203
15 avril 2010 à 17:08
15 avril 2010 à 17:08
essayez d'améliorer votre code avec la commande for et pour les expensions retardés
SETLOCAL ENABLEEXPENSIONs et a la fin vous devez finir avec ENDLOCAL
mais avec cette commande les %% doit remplacer par !!
bon chance
SETLOCAL ENABLEEXPENSIONs et a la fin vous devez finir avec ENDLOCAL
mais avec cette commande les %% doit remplacer par !!
bon chance
je viens de voir ce que pouvait donné la commande FOR mais ce qui m'intéresse pour la création de mon projet.
Je veux juste savoir afficher une variable construites avec une valeur.
ex: j'ai %pos0%=3 , j'aimerai que ce "3" corresponde au 3 de %alea3% .
avez-vous une solution pour cela?
Je veux juste savoir afficher une variable construites avec une valeur.
ex: j'ai %pos0%=3 , j'aimerai que ce "3" corresponde au 3 de %alea3% .
avez-vous une solution pour cela?
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
203
15 avril 2010 à 17:49
15 avril 2010 à 17:49
comme il dit Char Snipeur .. ca c'est un peut difficile pour le batch
je trouve que vous cherchez la position qui correspond a une valeur ???
je trouve que vous cherchez la position qui correspond a une valeur ???
Oui car ma variable %alea0% a trois valeur possible I, H et E; Idem pour les autres.
Donc la présentation que je veux faire est
echo %alea*% %alea*% %alea*% %alea*%
Le signe " * " est la valeur de ma variable %pos0% ou %pos1% ou %pos2% ou %pos3%.
C'est pour ça que je voudrai remplacer " * " par une des variables %pos%.
J'espère que vous comprenez mon souci et que quelqu'un puisse m'aider.
Merci karirovax et Char Snipeur pour votre aide.
Donc la présentation que je veux faire est
echo %alea*% %alea*% %alea*% %alea*%
Le signe " * " est la valeur de ma variable %pos0% ou %pos1% ou %pos2% ou %pos3%.
C'est pour ça que je voudrai remplacer " * " par une des variables %pos%.
J'espère que vous comprenez mon souci et que quelqu'un puisse m'aider.
Merci karirovax et Char Snipeur pour votre aide.
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
203
15 avril 2010 à 18:15
15 avril 2010 à 18:15
si j'ai bien compris
si vous remplacez :
echo %alea%*% %alea*% %alea*% %alea*%
par
echo %alea%pos0%% %alea%pos1%% %alea%pos2%% %alea%pos3%%
est ce que ca utile
si vous remplacez :
echo %alea%*% %alea*% %alea*% %alea*%
par
echo %alea%pos0%% %alea%pos1%% %alea%pos2%% %alea%pos3%%
est ce que ca utile
ça serait superbe mais j'ai déjà essayé et je ne trouve pas de variante qui fonctionnerait.
PS : echo %alea%pos0%% %alea%pos1%% %alea%pos2%% %alea%pos3%%
Donne pos0% pos1% pos2% pos3%
il faudrai par exemple A C H B
PS : echo %alea%pos0%% %alea%pos1%% %alea%pos2%% %alea%pos3%%
Donne pos0% pos1% pos2% pos3%
il faudrai par exemple A C H B
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
203
15 avril 2010 à 18:33
15 avril 2010 à 18:33
mais qu'elle est l'affichage qui vous voulez le faire ( un exemple )
Il faudrai
une des trois valeurs de %alea0% + une des trois valeurs de %alea1% + une des trois valeurs de %alea2% + une des trois valeurs de %alea3%
Et la valeur qui sera défini dans ces variables devront être afficher dans un ordre aléatoire.
Exemples avec toujours les mêmes valeurs pour les variables %alea0%, %alea1%, %alea2% et %alea3%.
ex:
C B A H ou
B H C A ou
B C A H ou
A B H C ou
etc...
une des trois valeurs de %alea0% + une des trois valeurs de %alea1% + une des trois valeurs de %alea2% + une des trois valeurs de %alea3%
Et la valeur qui sera défini dans ces variables devront être afficher dans un ordre aléatoire.
Exemples avec toujours les mêmes valeurs pour les variables %alea0%, %alea1%, %alea2% et %alea3%.
ex:
C B A H ou
B H C A ou
B C A H ou
A B H C ou
etc...
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
203
15 avril 2010 à 19:31
15 avril 2010 à 19:31
echo alea%pos0% alea%pos1% alea%pos2% alea%pos3%
est ce que ca c'est bon car j'ai pas bien compris
est ce que ca c'est bon car j'ai pas bien compris
Non sa ne marche pas non plus.
j'ai peu être une autre solution, en utilisant la fonction SET:
si je fais :
set alea%pos0%
sa va me donné :
alea0=Valeur que j'attend
mais je ne ve pa que ce " alea0= " s'affiche
Je voudrais juste ma valeur.
j'ai peu être une autre solution, en utilisant la fonction SET:
si je fais :
set alea%pos0%
sa va me donné :
alea0=Valeur que j'attend
mais je ne ve pa que ce " alea0= " s'affiche
Je voudrais juste ma valeur.
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
203
15 avril 2010 à 20:00
15 avril 2010 à 20:00
donc directement tapper :
echo %pos0% ...etc
ou
echo %nb0% ...etc
echo %pos0% ...etc
ou
echo %nb0% ...etc
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
203
15 avril 2010 à 20:08
15 avril 2010 à 20:08
mais je croix que vous déja fait ceci
echo %alea0% %alea1% %alea2% %alea3%
et il affiche par ex :
A B H C
puis au dessous encore tappez :
echo %pos0% ...etc
el la résultat final est :
A B H C
0 1 2 3 par exemple suivant le variable ( aléatoirement )
echo %alea0% %alea1% %alea2% %alea3%
et il affiche par ex :
A B H C
puis au dessous encore tappez :
echo %pos0% ...etc
el la résultat final est :
A B H C
0 1 2 3 par exemple suivant le variable ( aléatoirement )