Inséere un 0 dans une variable batch
methylene
-
methylene -
methylene -
Bonjour,
Je suis en train de coder en batch (eh oui encore et toujours), et après avoir extrait le mois de la date, je viens soustraire -1.
Le souci, par exemple, c'est que si j'extrait mon mois en 05, et que je viens y soustraire "1" ou "01", le résultat sera 4, et je n'arrive pas à redonner à ma variable après l'opération le 0 devant le 4.
J'en ai besoin car je vais derriere effectuer une copie à partir de la date extraite et modifiée.
Je cite :
Set jour=%date:~0,2%
Set mois=%date:~3,2%
Set annee=%date:~6,4%
Set /a varmois=%mois%-01
@ echo %jour%-%mois%-%annee%
@ echo %varmois%
Cela m'affiche :
04/03/2010
2
J'ai essayer par exemple varmois=%%0%%varmois%. J'ai par ailleurs également un problème avec mes conditions.
If "%varmois%"=="0|1|2|3|4|5|6|7|8|9" Then set varmois=%%0%%varmois%
@echo %varmois%
Déjà cette ligne ne marche pas, ensuite est-ce que j'ai besoin de proposer un else, ou vas-t-il me garder la valeur initiale de varmois si la condition if n'est pas remplie ?
Merci d'avance
Je suis en train de coder en batch (eh oui encore et toujours), et après avoir extrait le mois de la date, je viens soustraire -1.
Le souci, par exemple, c'est que si j'extrait mon mois en 05, et que je viens y soustraire "1" ou "01", le résultat sera 4, et je n'arrive pas à redonner à ma variable après l'opération le 0 devant le 4.
J'en ai besoin car je vais derriere effectuer une copie à partir de la date extraite et modifiée.
Je cite :
Set jour=%date:~0,2%
Set mois=%date:~3,2%
Set annee=%date:~6,4%
Set /a varmois=%mois%-01
@ echo %jour%-%mois%-%annee%
@ echo %varmois%
Cela m'affiche :
04/03/2010
2
J'ai essayer par exemple varmois=%%0%%varmois%. J'ai par ailleurs également un problème avec mes conditions.
If "%varmois%"=="0|1|2|3|4|5|6|7|8|9" Then set varmois=%%0%%varmois%
@echo %varmois%
Déjà cette ligne ne marche pas, ensuite est-ce que j'ai besoin de proposer un else, ou vas-t-il me garder la valeur initiale de varmois si la condition if n'est pas remplie ?
Merci d'avance
A voir également:
- Inséere un 0 dans une variable batch
- Fichier batch - Guide
- Remettre a 0 un pc - Guide
- Afficher le 0 devant un nombre dans excel - Guide
- Qualité de signal parabole 0 - Forum TNT / Satellite / Réception
- Batch installation id c'est quoi - Forum Mobile
6 réponses
hello
tu peux passer par une variable intermédiaire
C:> Set mois=%date:~3,2%
C:> echo %mois%
03
C:> Set /a varmois=%mois%-01
2
C:> set v=0%varmois%
C:> echo %v%
02
avec un 0 devant, tu vas avoir des problèmes avec 08 et 09,
C:> set /a x=08
Nombre non valide. Les constantes numériques doivent être soit décimales (17),
soit hexadécimales (0x11), soit octales (021).
tu peux passer par une variable intermédiaire
C:> Set mois=%date:~3,2%
C:> echo %mois%
03
C:> Set /a varmois=%mois%-01
2
C:> set v=0%varmois%
C:> echo %v%
02
avec un 0 devant, tu vas avoir des problèmes avec 08 et 09,
C:> set /a x=08
Nombre non valide. Les constantes numériques doivent être soit décimales (17),
soit hexadécimales (0x11), soit octales (021).
Bon ben à priori j'ai trouvé comment faire, et cela gère même le cas de janvier, en prenant compte du changement d'année, j'espère juste que la fonction xcopy va maintenant accepter cette date.
Set jour=%date:~0,2%
Set mois=%date:~3,2%
Set annee=%date:~6,4%
Set /a varmois=%mois%-01
@ echo %varmois%
pause
@ echo off
if "%varmois%"=="0" set varmois=12
if "%varmois%"=="1" set varmois=01
if "%varmois%"=="2" set varmois=02
if "%varmois%"=="3" set varmois=03
if "%varmois%"=="4" set varmois=04
if "%varmois%"=="5" set varmois=05
if "%varmois%"=="6" set varmois=06
if "%varmois%"=="7" set varmois=07
if "%varmois%"=="8" set varmois=08
if "%varmois%"=="9" set varmois=09
@ echo %varmois%
@ echo %varannee%
pause
set vardate=%jour%/%varmois%/%annee%
@ echo %vardate
pause
Set jour=%date:~0,2%
Set mois=%date:~3,2%
Set annee=%date:~6,4%
Set /a varmois=%mois%-01
@ echo %varmois%
pause
@ echo off
if "%varmois%"=="0" set varmois=12
if "%varmois%"=="1" set varmois=01
if "%varmois%"=="2" set varmois=02
if "%varmois%"=="3" set varmois=03
if "%varmois%"=="4" set varmois=04
if "%varmois%"=="5" set varmois=05
if "%varmois%"=="6" set varmois=06
if "%varmois%"=="7" set varmois=07
if "%varmois%"=="8" set varmois=08
if "%varmois%"=="9" set varmois=09
@ echo %varmois%
@ echo %varannee%
pause
set vardate=%jour%/%varmois%/%annee%
@ echo %vardate
pause
il faut supprimer le 0 devant
C:> set x=01 C:> if %x:~0,1%==0 (set /a x=%x:~-1%) else (set /a x=%x:~-2%) 1 C:> echo %x% 1 C:> set x=08 C:> if %x:~0,1%==0 (set /a x=%x:~-1%) else (set /a x=%x:~-2%) 8 C:> set x=10 C:> if %x:~0,1%==0 (set /a x=%x:~-1%) else (set /a x=%x:~-2%) 10
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
La solution :
set jour=%date:~0,2%
Set mois=%date:~3,2%
set annee=%date:~6,4%
Set lol=%mois:~0,1%
If "%lol%"=="0" Set mois=%mois:~1%
Set /a varmois=%mois%-1
@ echo off
if "%varmois%"=="0" set varmois=12
if "%varmois%"=="12" set /a annee=%annee%-1
if "%varmois%"=="1" set varmois=01
if "%varmois%"=="2" set varmois=02
if "%varmois%"=="3" set varmois=03
if "%varmois%"=="4" set varmois=04
if "%varmois%"=="5" set varmois=05
if "%varmois%"=="6" set varmois=06
if "%varmois%"=="7" set varmois=07
if "%varmois%"=="8" set varmois=08
if "%varmois%"=="9" set varmois=09
set vardate=%jour%/%varmois%/%annee%
@ echo %vardate%
pause
set jour=%date:~0,2%
Set mois=%date:~3,2%
set annee=%date:~6,4%
Set lol=%mois:~0,1%
If "%lol%"=="0" Set mois=%mois:~1%
Set /a varmois=%mois%-1
@ echo off
if "%varmois%"=="0" set varmois=12
if "%varmois%"=="12" set /a annee=%annee%-1
if "%varmois%"=="1" set varmois=01
if "%varmois%"=="2" set varmois=02
if "%varmois%"=="3" set varmois=03
if "%varmois%"=="4" set varmois=04
if "%varmois%"=="5" set varmois=05
if "%varmois%"=="6" set varmois=06
if "%varmois%"=="7" set varmois=07
if "%varmois%"=="8" set varmois=08
if "%varmois%"=="9" set varmois=09
set vardate=%jour%/%varmois%/%annee%
@ echo %vardate%
pause