formater un nombre avec batch/DOS
Bonjour le forum,
Je tourne en rond depuis ce matin, sur un problème tout simple :
dans un script dos, il me faut compter le nombre de caractères d'une chaine stockée dans une variable. Pour éventuellement la formater, typiquement je récupère l'heure système dans une variable avec la commande :
Code:
SET heure=%TIME:~0,8%
le problème est lorsque il y a un seul caractère pour l'heure j'aimerai la formater avec un zéro devant : 9 devient 09. Je voulais faire une boucle pour avoir la longueur de la chaine et concaténer avec un zéro si besoin.
y a t'il un solution ?? sans passer par du C ou autre bidouille
merci d'avance:mrgreen:
formater un nombre en DOS
rem --- recup du nombre passe en parametre
set Montant=%1
set Montant=#%Montant%
set FZone=
set n=0
:FSuite
rem -------- ajout d'un caractere indicant la fin du maskage
if "%Montant%" == "#" goto :FMask
set /a n=n+1
set FZone=%Montant:~-1%%FZone%
set Montant=%Montant:~,-1%
rem ----------- pas de formatage s il y a deja un masque applique
if "%Montant:~-1%" == " " set /A n=-1
if "%Montant:~-1%" == "," set /A n=-1
if "%Montant:~-1%" == "." set /A n=-1
rem ------- ajout d un separateur des millier tous les trois car
if "%n%" == "3" set FZone= %FZone%
if "%n%" == "3" set /A n=0
goto FSuite
rem ------- nettoyage des variables en fin et varibale de retour %RES%
:FMask
Set Res=%Fzone%
set FZone=
Set Montant=
set n=