comment dans un script batch de récuperer la date (%date%)
sous forme d'un nombre
au lieu du format texte clair aaaajjmm..... ?
merci ;):roll:
Version imprimable
comment dans un script batch de récuperer la date (%date%)
sous forme d'un nombre
au lieu du format texte clair aaaajjmm..... ?
merci ;):roll:
aaammjj étant une suite de chiffre c'est un nombre ;)
Ce que tu veux c'est récupérer un entier significatif comme sous Excel par exemple ?
Ce n'est pas possible directement avec les fonctions DOS et la date est retournée au format correspondant aux paramètres internationnaux.
%date% renvoit en réalité la date en clair telle que
15/12/2007
il faudrait alors :
soit la reformater en 20071215
est-ce possible ?
soit faire une calcul du nombre de jours depuis 01/01/1900 tel que
15 + 12*30 + 1007*365
est-ce possible ?
merci
echo %date:/=%
pas trouvé de solution dans la faq indiqué par Kokotis
>echo %date:/=%
renvoit 15122007
je cherche à en déduire le nombre de jours depuis une date donnée
exemple depuis le 01/01/1900
une solution ?
merci :?:)
Pas en DOS
DOS est un OS, pas un langage
Il y a quelques commandes, mais rien qui permette de faire des calculs ou des conversions.
Tourne-toi vers un vbs, ça ira tout seul ;)
Et surtout faire preuvre de courage :mouarf:
Certes on peut faire un calcul comme :
Mais en VBS on a des fonctions qui permettent de faire directement la différence entre deux dates et obtenir un entier, pas en DOS.Code:
1
2
3
4
5
6 @echo off set j=15 set m=12 set a=1007 set /a z=%j% + %m%*30 + %a%*365 echo %z%
Et ici on impose les valeurs jours-mois-année alors qu'il faudrait les calculer...
Nous sommes d'accord :)
Après, tout dépend des contraintes de jover, si il peut utiliser du VBS ou non et ce qu'il compte faire avec ce nombre de jours en question. Le VBS me semble également être une solution simple et rapide à mettre en oeuvre.
Sinon en adaptant ton script on peut faire ceci pour partir de la date du jour :
Code:
1
2
3 @echo off set /a nbjours=%date:~0,2% + %date:~3,2%*30 + %date:~6,4%*365 echo %nbjours%
Code:
1
2
3
4
5
6
7
8
9 @echo off set /a J="100%DATE:~0,2% %% 100" set /a M="100%DATE:~3,2% %% 100" set /a A=%DATE:~6,4% set /a N="((1461 * (%A% + 4800 + (%M% - 14) / 12)) / 4 + (367 * (%M% - 2 - 12 * ((%M% - 14) / 12))) / 12 - (3 * ((%A% + 4900 + (%M% - 14) / 12) / 100)) / 4 + %J% - 32075) - 2415021" echo. echo Nous sommes le %DATE% soit %N% jours depuis le 01/01/1900 echo.