Incrémenter variable sur 2 caractères

Incrémenter variable sur 2 caractères - Shell/Batch - Programmation

Marsh Posté le 17-09-2009 à 17:35:49    

Bonjour,
Petite question simple mais que je ne sais résoudre :
Comment incrémenter une variable sur 2 caractères ?
@echo off
set variable=0
: Boucle
set /a variable+=1
if /i %variable% equ 10 goto :eof
echo %variable% && goto Boucle
 
je souhaiterai obtenir 01, 02, 03..., 10 et non 1, 2, 3..., 10
J'ai cherché partout mais je ne trouve pas...
Merci

Reply

Marsh Posté le 17-09-2009 à 17:35:49   

Reply

Marsh Posté le 17-09-2009 à 19:02:27    

y a bien quelqu'un qui sait comment faire, SVP !

Reply

Marsh Posté le 18-09-2009 à 09:01:09    

en shell oui, en dos, je sais pas faire simplement... mais tu peux sans doute simplement faire un "si %variable% < 10 alors variable="0"%variable%"

 

j'ai pas mieux, désolé.

Message cité 1 fois
Message édité par pataluc le 18-09-2009 à 09:01:29
Reply

Marsh Posté le 18-09-2009 à 11:20:26    

pataluc a écrit :

en shell oui, en dos, je sais pas faire simplement... mais tu peux sans doute simplement faire un "si %variable% < 10 alors variable="0"%variable%"
j'ai pas mieux, désolé.


Merci pour cette astuce, mais j'ai un souci et je ne comprends pas...
Avec :
@echo off
set variable=0
: Boucle
set /a variable+=1
if /i %variable% equ 15 goto :eof
if /i %variable% lss 8 set variable=0%variable%
echo %variable% >> toto.txt && goto Boucle
 
j'obtiens :
01 02 03 04 05 06 07 8 9 10 11 12 13 14 => normal
 
mais avec :
@echo off
set variable=0
: Boucle
set /a variable+=1
if /i %variable% equ 15 goto :eof
if /i %variable% lss 9 set variable=0%variable%
echo %variable% >> toto.txt && goto Boucle
 
j'obtiens :
01 02 03 04 05 06 07 08 01 02 03 04 05 06 07 08 01 etc... ça tourne dans le vide !  
j'ai fait un truc mauvais ???

Reply

Marsh Posté le 18-09-2009 à 11:39:08    

passe par une autre variable (une variable valeur, une variable affichage)

 

genre

Code :
  1. @echo off
  2. set variable=0
  3. : Boucle
  4. set /a variable+=1
  5. if /i %variable% equ 15 goto :eof
  6. if /i %variable% lss 9 set variable2=0%variable%
  7. echo %variable2% >> toto.txt && goto Boucle


Message édité par pataluc le 18-09-2009 à 12:53:57
Reply

Marsh Posté le 18-09-2009 à 11:49:03    

oui mais avec ça, jamais j'écris %variable% ???
c'est étrange car mon script ne fonctionne pas quand j'arrive vers 8 ou 9 ??? c'est peut-être en rapport avec la notation octale ou un truc du genre ??? j'suis perdu là... mais merci pour ton aide pataluc

Reply

Marsh Posté le 18-09-2009 à 11:53:24    

car en descendant j'ai le même souci
Avec :
@echo off
set variable=21
: Boucle
set /a variable-=1
if /i %variable% equ 0 goto :eof
if /i %variable% lss 10 set variable=0%variable%
echo %variable% >> toto.txt && goto Boucle
 
J'obtiens :
20 19 18 17 16 15 14 13 12 11 10 09 0-1 0-1 0-1 0-1etc... ça tourne dans le vide ???

Reply

Marsh Posté le 18-09-2009 à 12:53:46    

ca ca marche (pour l'incrémental)

Code :
  1. @echo off
  2. set variable=0
  3. :Boucle
  4. set /a variable+=1
  5. if /i %variable% equ 15 goto :eof
  6. set variable2=%variable%
  7. if /i %variable% lss 10 set variable2=0%variable%
  8. echo %variable2%
  9. goto Boucle

Reply

Marsh Posté le 18-09-2009 à 13:01:48    

Hey mais ça marche, comment se fait-il que tu ne sois pas gêné par la notation octale ?
Je teste ça en profondeur et te redis...
Merci beaucoup pataluc ;-)

Reply

Marsh Posté le 18-09-2009 à 14:02:56    

c'est surtout que sans le

Code :
  1. set variable2=%variable%

avant le second if, variable2 n'était pas modifié... ya rien de magique.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed