Augmentation d'une variable par 1

Augmentation d'une variable par 1 - Shell/Batch - Programmation

Marsh Posté le 11-06-2008 à 02:25:53    

Bonjour,
 
 
Je débute dans la création de batch et je suis confronter à un petit soucis.
 
Je n'arrive pas à augmenter la valeur de "miscx" proportionnellement.
 
C'est dans l'optique de l'augmenter tant que la valeur de %miscx% ne soit pas égale à celle de %timerx%.
 
Une fois égale je voudrais que le dernier ai la valeur 0, ce qui me donnerai une suite du genre : 1 > 2 > 3 > 4 > 0.
 
Le reste fonctionne très bien.
 
 

Code :
  1. set /p map=Map :
  2. echo.
  3. set /p timerx=Combien de timer diffŠrent ? (2-5)
  4. echo.
  5. set /p ichi=Nom de votre 1er timer :
  6. echo.
  7. set /p ni=Nom de votre 2Šme timer :
  8. echo.
  9. if %timerx% GEQ 3 set /p san=Nom de votre 3Šme timer :
  10. echo.
  11. if %timerx% GEQ 4 set /p yon=Nom de votre 4Šme timer :
  12. echo.
  13. if %timerx% GEQ 5 set /p go=Nom de votre 5Šme timer :
  14. echo.
  15. echo.
  16. set /p Tred1=Timer axe de %ichi% :
  17. echo.
  18. set /p Tred1=Timer allies de %ichi% :
  19. echo.
  20. echo.
  21. set /p Tred2=Timer axe de %ni% :
  22. echo.
  23. set /p Tred2=Timer allies de %ni% :
  24. echo.
  25. echo.
  26. if DEFINED san set /p Tred3=Timer axe de %san% :
  27. echo.
  28. if DEFINED san set /p Tblue3=Timer allies de %san% :
  29. echo.
  30. echo.
  31. if DEFINED yon set /p Tred4=Timer axe de %yon% :
  32. echo.
  33. if DEFINED yon set /p Tblue4=Timer allies de %yon% :
  34. echo.
  35. echo.
  36. if DEFINED go set /p Tred5=Timer axe de %go% :
  37. echo.
  38. if DEFINED go set /p Tblue5=Timer allies de %go% :
  39. set /A miscx=0
  40. :toggle
  41. if %miscx% LSS %timerx% set /A miscx+=1
  42. if %miscx% lSS %timerx% goto toggle
  43. REM --------------------------------
  44. REM if %miscx% EQU %timerx% goto %miscx%
  45. REM --------------------------------
  46. echo Set t_misc_0 "set t_allies exec Timer\Team\Temps\txx\t%Tblue1% ; set t_axis exec Timer\Team\Temps\txx\t%Tred1% ; set t_misc vstr t_misc_%miscx% ; echo ^8Timer auto ^6: ^4%ichi%" >> autoexec_%Map%.cfg
  47. echo. >> autoexec_%Map%.cfg
  48. echo Set t_misc_1 "set t_allies exec Timer\Team\Temps\txx\t%Tblue2% ; set t_axis exec Timer\Team\Temps\txx\t%Tred2% ; set t_misc vstr t_misc_%miscx% ; echo ^8Timer auto ^6: ^4%ni%" >> autoexec_%Map%.cfg
  49. if not DEFINED san goto end
  50. echo. >> autoexec_%Map%.cfg
  51. echo Set t_misc_2 "set t_allies exec Timer\Team\Temps\txx\t%Tblue3% ; set t_axis exec Timer\Team\Temps\txx\t%Tred3% ; set t_misc vstr t_misc_%miscx% ; echo ^8Timer auto ^6: ^4%san%" >> autoexec_%Map%.cfg
  52. if not DEFINED yon goto end
  53. echo. >> autoexec_%Map%.cfg
  54. echo Set t_misc_3 "set t_allies exec Timer\Team\Temps\txx\t%Tblue4% ; set t_axis exec Timer\Team\Temps\txx\t%Tred4% ; set t_misc vstr t_misc_%miscx% ; echo ^8Timer auto ^6: ^4%yon%" >> autoexec_%Map%.cfg
  55. if not DEFINED go  goto end
  56. echo. >> autoexec_%Map%.cfg
  57. echo Set t_misc_4 "set t_allies exec Timer\Team\Temps\txx\t%Tblue5% ; set t_axis exec Timer\Team\Temps\txx\t%Tred5% ; set t_misc vstr t_misc_%miscx% ; echo ^8Timer auto ^6: ^4%go%" >> autoexec_%Map%.cfg
  58. :end
  59. echo. >> autoexec_%Map%.cfg
  60. echo. >> autoexec_%Map%.cfg
  61. echo vstr "t_misc_0" >> autoexec_%Map%.cfg


 
 
Y aurais-t'il aussi moyen de n'accepter que les nombre de 0-9 en entrer clavier pour certaine affectation de variable ?
 
 
 
Pourriez-vous m'aidé ?
 
 
 
Merci
 
 
 

Reply

Marsh Posté le 11-06-2008 à 02:25:53   

Reply

Marsh Posté le 11-06-2008 à 13:15:35    

Citation :

C'est dans l'optique de l'augmenter tant que la valeur de %miscx% ne soit pas égale à celle de %timerx%.
 
Une fois égale je voudrais que le dernier ai la valeur 0, ce qui me donnerai une suite du genre : 1 > 2 > 3 > 4 > 0.


 
D'après ce que tu expliques là, ceci devrait etre bon :

Code :
  1. :boucle
  2. if %miscx% EQu %timerx% goto suite
  3. set /a miscx+=1
  4. goto  boucle
  5. :suite


 
Mais le code que tu as écris ici devrait être bon aussi non ?

Code :
  1. :toggle
  2. if %miscx% LSS %timerx% set /A miscx+=1
  3. if %miscx% lSS %timerx% goto toggle


 
 

Citation :

Une fois égale je voudrais que le dernier ai la valeur 0, ce qui me donnerai une suite du genre : 1 > 2 > 3 > 4 > 0.


Quelle variable ?
Tu as juste a mettre un : "set variable=0" à la suite
 
J'ai peut etre pas tout compris ?

Reply

Marsh Posté le 11-06-2008 à 18:37:48    

J'ai résolu l'affaire qui n'était pas compliquer tout compte fait.
 
Oui mon code était bon, j'aurais peutêtre dû copier juste l'essentiel de la question, mais je me suis dit qu'il y avais peutêtre mieux à faire je vais toujours le laissser.
 
 
Si je remettait la variable à 0 j'aurais eu 0 > 0 > 0 > 0 > 0.
 
 
J'ai donc fait :

Code :
  1. if not DEFINED san (set /A misc2=0) ELSE (set /A misc2=2)
  2. if not DEFINED yon (set /A misc3=0) ELSE (set /A misc3=3)
  3. if not DEFINED go (set /A misc4=0) ELSE (set /A misc4=4)
  4. echo Set t_misc_0 "set t_allies exec Timer\Team\Temps\txx\t%Tblue1% ; set t_axis exec Timer\Team\Temps\txx\t%Tred1% ; set t_misc vstr t_misc_1 ; echo ^8Timer auto ^6: ^4%ichi%" >> autoexec_%Map%.cfg
  5. echo. >> autoexec_%Map%.cfg
  6. echo Set t_misc_1 "set t_allies exec Timer\Team\Temps\txx\t%Tblue2% ; set t_axis exec Timer\Team\Temps\txx\t%Tred2% ; set t_misc vstr t_misc_%misc2% ; echo ^8Timer auto ^6: ^4%ni%" >> autoexec_%Map%.cfg
  7. if not DEFINED san goto end
  8. echo. >> autoexec_%Map%.cfg
  9. echo Set t_misc_2 "set t_allies exec Timer\Team\Temps\txx\t%Tblue3% ; set t_axis exec Timer\Team\Temps\txx\t%Tred3% ; set t_misc vstr t_misc_%misc3% ; echo ^8Timer auto ^6: ^4%san%" >> autoexec_%Map%.cfg
  10. if not DEFINED yon goto end
  11. echo. >> autoexec_%Map%.cfg
  12. echo Set t_misc_3 "set t_allies exec Timer\Team\Temps\txx\t%Tblue4% ; set t_axis exec Timer\Team\Temps\txx\t%Tred4% ; set t_misc vstr t_misc_%misc4% ; echo ^8Timer auto ^6: ^4%yon%" >> autoexec_%Map%.cfg
  13. if not DEFINED go  goto end
  14. echo. >> autoexec_%Map%.cfg
  15. echo Set t_misc_4 "set t_allies exec Timer\Team\Temps\txx\t%Tblue5% ; set t_axis exec Timer\Team\Temps\txx\t%Tred5% ; set t_misc vstr t_misc_0 ; echo ^8Timer auto ^6: ^4%go%" >> autoexec_%Map%.cfg
  16. :end
  17. echo. >> autoexec_%Map%.cfg
  18. echo. >> autoexec_%Map%.cfg
  19. echo vstr "t_misc_0" >> autoexec_%Map%.cfg


 
 
Me reste plus qu'a savoir si nous pouvons limiter les réponse par des chiffre.
 
 
Merci

Reply

Sujets relatifs:

Leave a Replay

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