Date (Windows)

De wiki.nexiat.fr
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