Date (Windows)
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Domaine | Manipulation de la date en script batch |
| Commande | %date% / for /f
|
| Contexte | Équivalent Windows de date côté Linux
|
| Voir aussi | For (Windows) |
Contrairement à Linux où date +%Y-%m-%d formate directement la date, le batch
Windows n'offre pas de commande de formatage native — il faut découper la variable
%date% (dont le format dépend des paramètres régionaux du système) via
for /f.
⚠️ Les exemples ci-dessous supposent un format régional français jj/mm/aaaa —
à adapter si le système cible utilise un format différent (`%date%` seul, sans traitement,
permet de vérifier le format réellement renvoyé avant d'écrire le script).
Reformater en AAAA-MM-JJ
for /f "tokens=1,2,3 delims=/" %a in ('echo %date%') do @echo %c-%b-%a
Stocker la date dans une variable
for /f "tokens=1,2,3 delims=/" %a in ('echo %date%') do set TODAY=%c-%b-%a
Calculer le jour de la semaine
@echo off
set /a J=1%DATE:~0,2% - 100
set /a M=1%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) %% 7
if %N%==0 set JOUR=Lundi
if %N%==1 set JOUR=Mardi
if %N%==2 set JOUR=Mercredi
if %N%==3 set JOUR=Jeudi
if %N%==4 set JOUR=Vendredi
if %N%==5 set JOUR=Samedi
if %N%==6 set JOUR=Dimanche
echo Nous sommes %JOUR%
Ce calcul repose sur l'algorithme du jour julien — utile en batch legacy sans accès à
PowerShell, qui expose nativement (Get-Date).DayOfWeek bien plus simplement.
Voir aussi
- For (Windows) — mécanique générale de `for /f` utilisée ici