Bonjour à tous

Je galère en batch depuis quelques jours pour faire quelque chose de simple mais je ne trouve vraiment pas la solution
Ce que je voudrais :
variable=1001 => pas de soucis pour entrer cette valeur dans la variable
nb=compter le nombre de caractère => pas de soucis
ou je bloque c'est à partir de maintenant
je voudrais faire caractère par caractère à :
valider que le caractère n'est pas différent de 0 ou 1
puis
pour i = nb-1 jusqu'à i=0
1*2^(i)+0*2^(i)+0*2^(i)+1*2^(i) =>> donne le résultat en base de dix, le dernier doit être un 0

pour montrer que j'ai pas mal cherché avant :
Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
set variable=1001
set U=0
set resultat=0
set /a nb=%nb%-1  rem nb étant le nombre de caractère dans variable
for /l %%v in (%nb%, -1, 0) do (   rem ma boucle qui décompte en fonction du nombre de caractère, mis a nb-1 pour prendre en compte le z&ro
<div style="margin-left:40px">echo %%v rem j'affiche bien mon décompte, sera supprimé après</div><div style="margin-left:40px">set /a resultat=%variable:~0,1%rem permet de garder seulement le caractère pour mon calcul cette ligne sera certainement égale à voir plus bas</div><div style="margin-left:40px">echo %resultat%rem permet d'afficher le résultat à chaque boucle, il sera mis après la boucle for, juste histoire de contrôler l'avancer</div><div style="margin-left:40px">set /a U=%U%+1</div>)

ma ligne de calcul
Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
set /a resultat= %resultat% + (%variable:~%U%,1%)*2^%%v rem permettra de faire mon calcul comme expliqué plus haut car U est incrémenté et v est décrémenté
actuellement sans faire le calcul, lorsque j’exécute, il ne mets pas dans la variable résultat le chiffre et quand j'essaie d’intégrer ma variable (même avec un caractère d'échappement sur ma ligne de calcul, il ne veut pas.

Si quelqu'un peut m'aider