Boucle for dans un batch
Résolu/Fermé
vladivostok
Messages postés
228
Date d'inscription
samedi 6 septembre 2008
Statut
Membre
Dernière intervention
8 février 2010
-
7 août 2009 à 17:37
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 - 10 août 2009 à 14:31
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 - 10 août 2009 à 14:31
A voir également:
- Boucle for dans un batch
- Fichier batch - Guide
- Download instagram for pc - Télécharger - Divers Communication
- Saveaspdf.exe for office 2007 - Télécharger - Bureautique
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Idm for mac - Télécharger - Téléchargement & Transfert
15 réponses
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
8 août 2009 à 01:29
8 août 2009 à 01:29
Bonsoir,
Je découvre probablement en même temps que toi cette façon de faire car avant que je ne ponde ce qui suit j'ignorais qu'il fut possible de définir, on va dire "de manière dynamique" des variables distinctes, en l'occurrence char1, char2,.........char30.
Résultats:
Pour controles visuels:
char1 contient la valeur: 1
char2 contient la valeur: 0
char3 contient la valeur: 0
char4 contient la valeur: 0
char5 contient la valeur: 0
char6 contient la valeur: 0
char7 contient la valeur: 0
char8 contient la valeur: 0
char9 contient la valeur: 0
char10 contient la valeur: 0
char11 contient la valeur: 0
char12 contient la valeur: 0
char13 contient la valeur: 0
char14 contient la valeur: 0
char15 contient la valeur: 0
char16 contient la valeur: 0
char17 contient la valeur: 2
char18 contient la valeur: 2
char19 contient la valeur: 2
char20 contient la valeur: 2
char21 contient la valeur: 2
char22 contient la valeur: 2
char23 contient la valeur: 2
char24 contient la valeur: 2
char25 contient la valeur: 2
char26 contient la valeur: 2
char27 contient la valeur: 2
char28 contient la valeur: 2
char29 contient la valeur: 2
char30 contient la valeur: 2
En espérant que cela réponde à ton attente,
Je découvre probablement en même temps que toi cette façon de faire car avant que je ne ponde ce qui suit j'ignorais qu'il fut possible de définir, on va dire "de manière dynamique" des variables distinctes, en l'occurrence char1, char2,.........char30.
SETLOCAL ENABLEdelayedExpansion SETLOCAL ENABLEextensions CLS echo off set /A nbrcharmax=16 set /A nbrcharmin=1 set /A chiffre=1 for /L %%i in (1,1,30) do ( set "char=char%%i" if !chiffre! LEQ %nbrcharmin% (set /A !char! = 1) if !chiffre! GTR %nbrcharmin% (set /A !char! = 0) if !chiffre! GTR %nbrcharmax% (set /A !char! = 2) rem echo Pour controles visuels: !char! = !char%%i! rem set /A chiffre = !chiffre! + 1 ) for /L %%j in (1,1,30) do ( set "char=char%%j" if %%j == 1 (echo Pour controles visuels: ) echo !char! contient la valeur: !char%%j! ) ................... suite du programme
Résultats:
Pour controles visuels:
char1 contient la valeur: 1
char2 contient la valeur: 0
char3 contient la valeur: 0
char4 contient la valeur: 0
char5 contient la valeur: 0
char6 contient la valeur: 0
char7 contient la valeur: 0
char8 contient la valeur: 0
char9 contient la valeur: 0
char10 contient la valeur: 0
char11 contient la valeur: 0
char12 contient la valeur: 0
char13 contient la valeur: 0
char14 contient la valeur: 0
char15 contient la valeur: 0
char16 contient la valeur: 0
char17 contient la valeur: 2
char18 contient la valeur: 2
char19 contient la valeur: 2
char20 contient la valeur: 2
char21 contient la valeur: 2
char22 contient la valeur: 2
char23 contient la valeur: 2
char24 contient la valeur: 2
char25 contient la valeur: 2
char26 contient la valeur: 2
char27 contient la valeur: 2
char28 contient la valeur: 2
char29 contient la valeur: 2
char30 contient la valeur: 2
En espérant que cela réponde à ton attente,
vladivostok
Messages postés
228
Date d'inscription
samedi 6 septembre 2008
Statut
Membre
Dernière intervention
8 février 2010
20
8 août 2009 à 11:40
8 août 2009 à 11:40
Merci beaucoup c'est tout a fait se que je voulait ^^ mais peut m'expliquer la suite du programme (soit la deuxième boucle for) je ne comprend pas a quoi elle sert.
En tout cas merci pour ta réponse rapide
En tout cas merci pour ta réponse rapide
vladivostok
Messages postés
228
Date d'inscription
samedi 6 septembre 2008
Statut
Membre
Dernière intervention
8 février 2010
20
8 août 2009 à 14:23
8 août 2009 à 14:23
Juste comme sa la boucle ne marche pas tout comme celle que j'avais essayer de faire elle ne reconnait pas la suite après do (
Voila c'est tout
Voila c'est tout
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
8 août 2009 à 14:42
8 août 2009 à 14:42
Oups !
rem set /A chiffre = !chiffre! + 1 )
J'ai mis cette ligne en commentaire au dernier moment et je n'ai pas remarqué la parenthèse fermante qui par le fait a "sauté". Il te suffit d'ajouter une ligne avec une parenthèse fermante :
)
rem set /A chiffre = !chiffre! + 1 )
J'ai mis cette ligne en commentaire au dernier moment et je n'ai pas remarqué la parenthèse fermante qui par le fait a "sauté". Il te suffit d'ajouter une ligne avec une parenthèse fermante :
)
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
8 août 2009 à 14:35
8 août 2009 à 14:35
Bonjour,
for /L %%j in (1,1,30) do (
set "char=char%%j"
if %%j == 1 (echo Pour controles visuels: )
echo !char! contient la valeur: !char%%j! )
Cette seconde boucle for affiche (echo) le contenu des 30 variables. Elle permet uniquement de s'assurer qu'il existe bien 30 variables de noms différents convenablement renseignées avec une valeur cohérente (0, 1 ou 2). Cette séquence d'ordres devra, bien entendu, être éliminée une fois les tests achevés, je l'ai laissée pour te permettre de vérifier les résultats:
char1 contient la valeur: 1
char2 contient la valeur: 0
char3 contient la valeur: 0
....... ........... .. .......... .
....... ........... .. .......... .
La ligne ci-dessous (en commentaire dans la 1ère boucle for), si elle était activée, aurait le même effet que celle de la seconde boucle for à cela près qu'elle ne permettrait pas de vérifier l'existence des 30 variables puisqu'elle affiche (echo) chaque variable au moment où elle est définie (set "char=char%%i"). A ce stade du déroulement du programme, rien n'indique que les variables charn (n < %%i) existent effectivement.
rem echo Pour controles visuels: !char! = !char%%i!
for /L %%j in (1,1,30) do (
set "char=char%%j"
if %%j == 1 (echo Pour controles visuels: )
echo !char! contient la valeur: !char%%j! )
Cette seconde boucle for affiche (echo) le contenu des 30 variables. Elle permet uniquement de s'assurer qu'il existe bien 30 variables de noms différents convenablement renseignées avec une valeur cohérente (0, 1 ou 2). Cette séquence d'ordres devra, bien entendu, être éliminée une fois les tests achevés, je l'ai laissée pour te permettre de vérifier les résultats:
char1 contient la valeur: 1
char2 contient la valeur: 0
char3 contient la valeur: 0
....... ........... .. .......... .
....... ........... .. .......... .
La ligne ci-dessous (en commentaire dans la 1ère boucle for), si elle était activée, aurait le même effet que celle de la seconde boucle for à cela près qu'elle ne permettrait pas de vérifier l'existence des 30 variables puisqu'elle affiche (echo) chaque variable au moment où elle est définie (set "char=char%%i"). A ce stade du déroulement du programme, rien n'indique que les variables charn (n < %%i) existent effectivement.
rem echo Pour controles visuels: !char! = !char%%i!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
vladivostok
Messages postés
228
Date d'inscription
samedi 6 septembre 2008
Statut
Membre
Dernière intervention
8 février 2010
20
8 août 2009 à 14:44
8 août 2009 à 14:44
En fait j'ai fait autrement pour ma boucle voila :
Le problème est que l'incrémentation de la variable %chiffre% ne fonctionne pas si tu avait une idée.
set /A nbrcharmax=16 set /A nbrcharmin=1 set /A chiffre=1 for /L %%i in (1,1,30) do ( set charactere=char%chiffre% if %chiffre% LEQ %nbrcharmin% set /A valchar=1 if %chiffre% GTR %nbrcharmin% set /A valchar=0 if %chiffre% GTR %nbrcharmax% set valchar=n echo %charactere% vaut %valchar% echo set %charactere%=%valchar%>>toto.txt echo %chiffre% set /A chiffre=%chiffre%+1 ) pause
Le problème est que l'incrémentation de la variable %chiffre% ne fonctionne pas si tu avait une idée.
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
8 août 2009 à 14:51
8 août 2009 à 14:51
C'est le problème classique lié à l'expansion retardée de variables. Tape sous l'invite de commandes help set, positionne toi et prends connaissance de la seconde page d'explication affichée à l'écran en t'aidant de mon code, tu devrais comprendre ce qui se passe. Dans le cas contraire pose des questions.
vladivostok
Messages postés
228
Date d'inscription
samedi 6 septembre 2008
Statut
Membre
Dernière intervention
8 février 2010
20
8 août 2009 à 15:04
8 août 2009 à 15:04
oki je regarde merci
vladivostok
Messages postés
228
Date d'inscription
samedi 6 septembre 2008
Statut
Membre
Dernière intervention
8 février 2010
20
9 août 2009 à 14:22
9 août 2009 à 14:22
Voila j'ai suivit t'est conseil et j'ai modifier ma boucle : maintenant l'incrémentation fonctionne comme il faut mais les variable !charactere! et !valchar! n'affiche pas les valeur que je leur est donne pourrait tu m'expliquer cela Merci.
Voila une fois modifier.
Voila une fois modifier.
set /A nbrcharmax=16 set /A nbrcharmin=1 for /L %%i in (1,1,30) do ( set "charactere=char%%i" if %%i LEQ %nbrcharmin% set /A !valchar! = 1 if %%i GTR %nbrcharmin% set /A !valchar! = 0 if %%i GTR %nbrcharmax% set !valchar! = n echo !charactere! vaut !valchar! echo set !charactere!=!valchar!>>toto.txt echo %%i )
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
9 août 2009 à 15:26
9 août 2009 à 15:26
Bonjour,
En réponse à ta question, voici, sous forme de correction, quelques explications.
En réponse à ta question, voici, sous forme de correction, quelques explications.
SETLOCAL ENABLEdelayedExpansion SETLOCAL ENABLEextensions CLS echo off set /A nbrcharmax=16 set /A nbrcharmin=1 for /L %%i in (1,1,30) do ( REM Ici il faut renseigner la variable valchar avec son propre nom suffixé par REM une valeur allant de 1 à 30. REM set "charactere=char%%i" SET "valchar=valchar%%i" REM POur s'en persuader faire : ECHO !valchar! REM echo !charactere! REM Jusque là c'est cohérent avec la variable charactere pause REM Ici on test et on initialise LE CONTENU de valchar. Ce contenu REM (ce'est-à-dire !valchar!), on vient de le voir, est le nom de la REM variable (varchar1, varchar2, .........., REM varchar30 ) suffixé avec une valeur. REM Ce qui revient à dire qu'une variable ayant pour nom varcharn(n = 1 à 30) REM est créée et renseignée avec une valeur (0, 1 ou 2) à chaque itération. REM Tu aurais dû continuer avec la variable charactere où bien comme je l'ai REM fait plus haut ne pas définir charactere mais plutôt varchar. Car à ce REM niveau, comme tu as fait avec la variable charactere, varchar ne contient REM rien de cohérent en tout cas pas ce à quoi on s'attend (c'est-à-dire son REM propre nom suffixé par une valeur allant de 1 à 30). if %%i LEQ %nbrcharmin% set /A !valchar! = 1 if %%i GTR %nbrcharmin% set /A !valchar! = 0 REM Ici Je n'ai pas compris, pourquoi n ? REM if %%i GTR %nbrcharmax% set !valchar! = n IF %%i GTR %nbrcharmax% set /A !valchar! = 2 REM Ici c'est la conséquence de ce qui précède plus l'oubli du suffixe n qui REM référence (nomme) la variable en cours : REM echo !charactere! vaut !valchar! REM Il faut si on conserve varchar procéder comme cela : ECHO !valchar! vaut !valchar%%i! REM Ici Idem REM echo set !charactere!=!valchar!>>toto.txt rem ECHO !valchar!=!valchar%%i!>>toto.txt echo %%i )
vladivostok
Messages postés
228
Date d'inscription
samedi 6 septembre 2008
Statut
Membre
Dernière intervention
8 février 2010
20
9 août 2009 à 17:46
9 août 2009 à 17:46
Je ne comprend pas pourquoi tu rajoute rem devant certaine ligne de code qui ne sont pas des remarque ? est ce que cela a une influence sur le reste du code en tout cas merci.
Voila j'ai fait quelque modifie après avoir lu ton code et je tombe sur sa :
le résultat finale dans le fichier toto me plait sauf que pour n il met toujours 0 et pas n voila le problème
Dsl si je ne copie pas tout entier ton code mais c'est comme sa que j'apprends ^^.
Pour le n c'est qu'après lorsque que se sera finit je ferait une incrémentation de tout les chiffre un part un et si je met comme valeur ne devant pas être incrémenter 2 ^^ sa va pas aller alors que le je dit que si charX vaut n on s'arrête.
Voila j'ai fait quelque modifie après avoir lu ton code et je tombe sur sa :
SETLOCAL ENABLEdelayedExpansion SETLOCAL ENABLEextensions set /A nbrcharmax=16 set /A nbrcharmin=1 for /L %%i in (1,1,30) do ( set "charactere=char%%i" set "valchar=valchar" if %%i LEQ %nbrcharmin% set /A !valchar!=1 if %%i GTR %nbrcharmin% set /A !valchar!=0 if %%i GTR %nbrcharmax% set !valchar!=n echo !charactere! vaut !valchar! echo set !charactere!=!valchar!>>toto.txt echo %%i>>toto.txt )
le résultat finale dans le fichier toto me plait sauf que pour n il met toujours 0 et pas n voila le problème
Dsl si je ne copie pas tout entier ton code mais c'est comme sa que j'apprends ^^.
Pour le n c'est qu'après lorsque que se sera finit je ferait une incrémentation de tout les chiffre un part un et si je met comme valeur ne devant pas être incrémenter 2 ^^ sa va pas aller alors que le je dit que si charX vaut n on s'arrête.
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
9 août 2009 à 17:59
9 août 2009 à 17:59
Hormis cette ligne :
rem ECHO !valchar!=!valchar%%i!>>toto.txt
que j'ai mis en commentaire pour faciliter les tests, les autres sont corrigées par une nouvelle ligne qui annule et remplace celle mise en commentaire (précédée par REM).
Tu as rencontré des problèmes lors des tests ?
rem ECHO !valchar!=!valchar%%i!>>toto.txt
que j'ai mis en commentaire pour faciliter les tests, les autres sont corrigées par une nouvelle ligne qui annule et remplace celle mise en commentaire (précédée par REM).
Tu as rencontré des problèmes lors des tests ?
vladivostok
Messages postés
228
Date d'inscription
samedi 6 septembre 2008
Statut
Membre
Dernière intervention
8 février 2010
20
9 août 2009 à 18:03
9 août 2009 à 18:03
Le seul problème est que le n ne remplace pas le 0 si %%i plus grand que %nbrcharmax% sinon tout marche super bien.
En tout cas merci pour ton aide
PS : si depuis le début tu a remarquer la faute avec charactere c'est en faite que je me suis rendu compte de la faute une fois que tout était finit ^^
En tout cas merci pour ton aide
PS : si depuis le début tu a remarquer la faute avec charactere c'est en faite que je me suis rendu compte de la faute une fois que tout était finit ^^
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
9 août 2009 à 19:32
9 août 2009 à 19:32
En claire que cela définisse les valeurs de
char1, char2, ..., char30 en fonction des valeur rentrer par l'utilisateur que sont nbrcharmax et nbrcharmin
Je te signale, mais c'est peut-être ce que tu souhaites maintenant, que ton code ne préserve pas cette fonctionnalité. Les variables char1, char2, ..., char30 (représentées par valchar dans ton code) sont maintenant vides.
--Cordialement.
Cchristian.
char1, char2, ..., char30 en fonction des valeur rentrer par l'utilisateur que sont nbrcharmax et nbrcharmin
Je te signale, mais c'est peut-être ce que tu souhaites maintenant, que ton code ne préserve pas cette fonctionnalité. Les variables char1, char2, ..., char30 (représentées par valchar dans ton code) sont maintenant vides.
--Cordialement.
Cchristian.
vladivostok
Messages postés
228
Date d'inscription
samedi 6 septembre 2008
Statut
Membre
Dernière intervention
8 février 2010
20
9 août 2009 à 19:57
9 août 2009 à 19:57
Je suis désole mais je ne comprend pas ce que tu viens de me dire mais le principale marche alors merci.
Le seul problème pour moi c'est que la valeur "n" ne peut pas se mettre sur le variable !valchar!
En tout cas merci pour ton aide (et ta patience faut bien le dire ^^).
En fait si tu pouvait voir sa si tu connait ^^ :
https://forums.commentcamarche.net/forum/affich-13769810-puissance-d-un-nombre-dans-un-batch#dernier
Voila pourquoi je le voulait bien que non finit ^^
Le seul problème pour moi c'est que la valeur "n" ne peut pas se mettre sur le variable !valchar!
En tout cas merci pour ton aide (et ta patience faut bien le dire ^^).
En fait si tu pouvait voir sa si tu connait ^^ :
https://forums.commentcamarche.net/forum/affich-13769810-puissance-d-un-nombre-dans-un-batch#dernier
Voila pourquoi je le voulait bien que non finit ^^
@echo off rem initialisation setlocal SETLOCAL ENABLEdelayedExpansion SETLOCAL ENABLEextensions rem definition du titre title Gencode rem mode d'affichage mode 75,50 rem definition des couleurs color 5b REM debut echo. echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» echo º Bienvenue º echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ echo. REM Initialisation des valeurs des variables demande au public set nbrcharmin=16 set nbrcharmax=0 :def1 set /P nbrcharmin=Definissez le nombre de caractere minimale (entre 1 et 15) :01 if %nbrcharmin%==1 (goto def2 ) else (goto 02 ) :02 if %nbrcharmin%==2 (goto def2 ) else (goto 03 ) :03 if %nbrcharmin%==3 (goto def2 ) else (goto 04 ) :04 if %nbrcharmin%==4 (goto def2 ) else (goto 05 ) :05 if %nbrcharmin%==5 (goto def2 ) else (goto 06 ) :06 if %nbrcharmin%==6 (goto def2 ) else (goto 07 ) :07 if %nbrcharmin%==7 (goto def2 ) else (goto 08 ) :08 if %nbrcharmin%==8 (goto def2 ) else (goto 09 ) :09 if %nbrcharmin%==9 (goto def2 ) else (goto 010 ) :010 if %nbrcharmin%==10 (goto def2 ) else (goto 011 ) :011 if %nbrcharmin%==11 (goto def2 ) else (goto 012 ) :012 if %nbrcharmin%==12 (goto def2 ) else (goto 013 ) :013 if %nbrcharmin%==13 (goto def2 ) else (goto 014 ) :014 if %nbrcharmin%==14 (goto def2 ) else (goto 015 ) :015 if %nbrcharmin%==15 (goto def2 ) else (goto def1 ) :def2 set /A nbrcharminmax=nbrcharmin set /A nbrcharminmax=nbrcharminmax+1 set /P nbrcharmax=Definissez le nombre de caractere maximale (entre %nbrcharminmax% et 30) :1 if %nbrcharmax%==1 (goto autre ) else (goto 2 ) :2 if %nbrcharmax%==2 (goto autre ) else (goto 3 ) :3 if %nbrcharmax%==3 (goto autre ) else (goto 4 ) :4 if %nbrcharmax%==4 (goto autre ) else (goto 5 ) :5 if %nbrcharmax%==5 (goto autre ) else (goto 6 ) :6 if %nbrcharmax%==6 (goto autre ) else (goto 7 ) :7 if %nbrcharmax%==7 (goto autre ) else (goto 8 ) :8 if %nbrcharmax%==8 (goto autre ) else (goto 9 ) :9 if %nbrcharmax%==9 (goto autre ) else (goto 10 ) :10 if %nbrcharmax%==10 (goto autre ) else (goto 11 ) :11 if %nbrcharmax%==11 (goto autre ) else (goto 12 ) :12 if %nbrcharmax%==12 (goto autre ) else (goto 13 ) :13 if %nbrcharmax%==13 (goto autre ) else (goto 14 ) :14 if %nbrcharmax%==14 (goto autre ) else (goto 15 ) :15 if %nbrcharmax%==15 (goto autre ) else (goto 16 ) :16 if %nbrcharmax%==16 (goto autre ) else (goto 17 ) :17 if %nbrcharmax%==17 (goto autre ) else (goto 18 ) :18 if %nbrcharmax%==18 (goto autre ) else (goto 19 ) :19 if %nbrcharmax%==19 (goto autre ) else (goto 20 ) :20 if %nbrcharmax%==20 (goto autre ) else (goto 21 ) :21 if %nbrcharmax%==21 (goto autre ) else (goto 22 ) :22 if %nbrcharmax%==22 (goto autre ) else (goto 23 ) :23 if %nbrcharmax%==23 (goto autre ) else (goto 24 ) :24 if %nbrcharmax%==24 (goto autre ) else (goto 25 ) :25 if %nbrcharmax%==25 (goto autre ) else (goto 26 ) :26 if %nbrcharmax%==26 (goto autre ) else (goto 27 ) :27 if %nbrcharmax%==27 (goto autre ) else (goto 28 ) :28 if %nbrcharmax%==28 (goto autre ) else (goto 29 ) :29 if %nbrcharmax%==29 (goto autre ) else (goto 30 ) :30 if %nbrcharmax%==30 (goto autre ) else (goto def2 ) :autre if %nbrcharmax% LEQ %nbrcharmin% (goto def2 ) else (goto suite ) :suite rem Ecriture du resultat echo. if %nbrcharmin%==1 (echo Le script va marquer dans un fichier texte toute les combinaison de nombres chiffre et caracteres speciaux entre %nbrcharmin% caractere et %nbrcharmax% characteres ) else (echo Le script va marquer dans un fichier texte toute les combinaison de nombres chiffre et caracteres speciaux entre %nbrcharmin% caracteres et %nbrcharmax% characteres ) echo. rem calcule du poids totale du fichier final set /A poidsintermediaire=76^%nbrcharmax%-76^%nbrcharmin% set /A poidsinter=%nbrcharmax%+15 set /A poidstotale=%poidsintermediaire%*%poidsinter% set /A poidsko=%poidstotale%/1024 set /A poidsmo=%poidsko%/1024 set /A poidsgo=%poidsmo%/1024 rem affichage du poids echo le fichier texte final peserat aproximativement %poidstotale% octets %poidsko% Ko, ou encore %poidsmo% Mo et enfin %poidsgo% Go. echo. rem initialisation setlocal dans gencode echo @echo off>"gencode-%nbrcharmin%-%nbrcharmax%.bat" echo SETLOCAL ENABLEdelayedExpansion>>"gencode-%nbrcharmin%-%nbrcharmax%.bat" echo SETLOCAL ENABLEextensions>>"gencode-%nbrcharmin%-%nbrcharmax%.bat" rem boucle initialisation des charX for /L %%i in (1,1,30) do ( set "charactere=char%%i" set "valchar=valchar" if %%i LEQ %nbrcharmin% set /A !valchar!=1 if %%i GTR %nbrcharmin% set /A !valchar!=0 if %%i GTR %nbrcharmax% set !valchar!=n echo !charactere! vaut !valchar! echo set !charactere!=!valchar!>>"gencode-%nbrcharmin%-%nbrcharmax%.bat" ) rem pause de verification echo pause>>"gencode-%nbrcharmin%-%nbrcharmax%.bat" rem modification du mode mode 110,33 rem liste des touche possible echo. echo Vous pouvez choisir la priorit‚ avec laquel le script va s'executer. echo. echo A quoi cela va servir allez vous me dire ? echo et bien cela joue sur la rapidit‚ avec laquel la solution va etre ‚crite. echo. echo appuyer sur les touche suivant pour definir le niveau de priorit‚. echo N (pour Normal) lance le script avec la priorit‚ normal accorder … ce type de script (Choix par d‚faut automatiquement choisit au bout de 30 secondes) echo. echo B (pour BELOW NORMAL) lance le script avec une priorit‚ inferieur … la normale (lent) echo. echo H (pour HIGH) lance le script avec la priorit‚ la plus haute possible (le plus rapide) echo. echo A (pour ABOVE NORMAL) lance le script avec une priorit‚ superieur … la normale (relativement rapide) echo. echo L (pour LOW) lance le script avec la priorit‚ la plus basse possible (le plus lent mais economie de processus) echo. rem commande choice CHOICE /C:nbhal /N /T:n,30 "Choissisez la priorit‚ du programme" If ERRORLEVEL==5 goto MARQUE5 If ERRORLEVEL==4 goto MARQUE4 If ERRORLEVEL==3 goto MARQUE3 If ERRORLEVEL==2 goto MARQUE2 If ERRORLEVEL==1 goto MARQUE1 :MARQUE1 rem touche n start gencode-%nbrcharmin%-%nbrcharmax%.bat exit rem fin du programme :MARQUE2 rem touche b start /BELOWNORMAL gencode-%nbrcharmin%-%nbrcharmax%.bat exit rem fin du programme :MARQUE3 rem touche h start /HIGH gencode-%nbrcharmin%-%nbrcharmax%.bat exit rem fin du programme :MARQUE4 rem touche a start /ABOVENORMAL gencode-%nbrcharmin%-%nbrcharmax%.bat exit rem fin du programme :MARQUE5 rem touche l start /LOW gencode-%nbrcharmin%-%nbrcharmax%.bat exit rem fin du programme
vladivostok
Messages postés
228
Date d'inscription
samedi 6 septembre 2008
Statut
Membre
Dernière intervention
8 février 2010
20
10 août 2009 à 14:31
10 août 2009 à 14:31
J'ai trouver en fait il suffisait d'inverser les lignes :
if %%i GTR %nbrcharmin% set /A !valchar!=0
if %%i GTR %nbrcharmax% set !valchar!=n
if %%i GTR %nbrcharmin% set /A !valchar!=0
if %%i GTR %nbrcharmax% set !valchar!=n