Bonjour,
Je voudrais afficher en batch une variable sur plusieurs digits:
Par exemple:
m'afficheCode:
1
2
3 set var=1 echo %var%
et je voudrais obtenirCode:1
.Code:0001
Merci de votre aide.
Version imprimable
Bonjour,
Je voudrais afficher en batch une variable sur plusieurs digits:
Par exemple:
m'afficheCode:
1
2
3 set var=1 echo %var%
et je voudrais obtenirCode:1
.Code:0001
Merci de votre aide.
Je ne crois pas que ce soit possible directement
Une solution est d'ajouter les quatre 0 devant et de tronquer ensuite à 4 caractères.
Ce que tu peux généraliser avec une fonction du type (il y a certainement plus simple) :
Le premier argument de :printVal est le nombre de digit et le second le chiffre à afficher.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 @echo off setlocal enabledelayedexpansion call :printVal 4 1 goto :EOF :printVal for /L %%i in (1,1,%1) do set zero=0!zero! set var=%zero%%2 set var=!var:~-%1! echo %var% goto :EOF
Attention dans cette version si tu fais :printVal 2 1000 ta valeur 1000 sera tronquée, pour éviter cela il faut ajouter un test dans :printVal.
Je suis habitué aux scripts bash avec lesquels un simple printf %04d aurait suffit, mais en en batch ça devient toujours une grosse bidouille.
En tous cas merci pour ton aide, ça répond pleinement à ma question.
Je ne vois pas à quoi sert la ligne suivante:
Code:setlocal enabledelayedexpansion
A activer les expansions retardées de variables pour pouvoir utiliser les !variable! au lieu de %variable%
Ici deux usages, la boucle qui construit les 0 (utilisation classique des !!) et la substitution avec le %1 (utilisation moins classique)
Merci.