Bonjour à tous, bonsoir le forum,
Je suis face à un problème bien étrange. Je développe un petit batch qui convertit un décimal vers un hexa. Pour l'instant j'ai juste une boucle qui concatène dans une string (nommée hex) le dernier dividende et le reste des divisions successives par 16. Cette boucle vérifie donc à chaque fois si l'on peut encore diviser par 16. Le truc c'est que si j'enlève la condition de test, mon résultat est juste et si je la mets j'obtiens un message "Il manque un opérande" et mon résultat est faux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part IF %N% GTR 15 (
bug.JPG : résultat avec la condition
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 @echo off & setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION set /p Nstr=taper un nombre: set hex=; set /a N = %Nstr% set /a en = 0 set /a r = 0 :boucle set /a N=%N% IF %N% GTR 15 ( set /a en=%N%/16 set /a rTMP=%en%*16 set /a r=%N%-%rTMP% echo %N%=16* %en% + %r% set hex = %r% %hex% set /a N=%en% pause goto boucle ) set hex=%N% %hex% pause
good.JPG : résultat sans la condition (mais forcément ça boucle à l'infini)
Dans l'attente de vos lumières, bonne soirée
Bel'
Partager