Plusieurs solutions existent pour afficher la date et l'heure courante dans un script batch.
Vous trouverez sur cette page la deuxième solution (parmi d'autres) pour afficher ces données.
En utilisant la première solution, vous apprendrez également à manipuler les chaînes de caractères, mais le principal défaut est que vous ne pouvez pas l'utiliser pour créer un fichier (voir plus bas pour plus d'explications)
En utilisant cette seconde solution, vous découvrirez la puissance de la boucle for !
En combinant la boucle for et la commande date ou time, vous pouvez également récupérer la date et l'heure.
Voici la syntaxe pour découper la date dans le format aaaammjj :
@echo off for /f "tokens=1,2,3 delims=/ " %%a in ('date /t') do set maDate=%%c%%b%%a echo Date : %maDate%
Le résultat de ce script est :
Date : 20131003
Explications :
En utilisant la syntaxe précédente, vous pouvez bien sur récupérer les données séparément :
@echo off for /f "delims=/ tokens=1,2,3" %%a in ('date /t') do set jour=%%a for /f "delims=/ tokens=1,2,3" %%a in ('date /t') do set mois=%%b for /f "delims=/ tokens=1,2,3" %%a in ('date /t') do set annee=%%c echo Jour : %jour% echo Mois : %mois% echo Annee : %annee%
Le résultat de ce script est :
Jour : 03 Mois : 10 Annee : 2013
Toujours avec cette syntaxe, vous pouvez récupérer l'heure courante. Contrairement à la solution 1, l'espace ne sera pas ajouté pour les heures inférieures à 10. Vous pouvez donc utiliser cette solution pour créer un nom de fichier contenant la date et l'heure :
@echo off for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set heure=%%a for /f "tokens=1,2,3delims=:" %%a in ('time /t') do set minute=%%b echo Heure : %heure% echo Minute : %minute% echo Test > fichier_%heure%%minute%.txt
Le résultat de ce script est :
Heure : 19 Minute : 42
Explications :
Voici deux autres solutions, données par des lecteurs, pour obtenir le 0 initial aux heures < 10
@echo off set hh0=%time:~0,2% set /a hh1=%hh0%+100 set hh=%hh1:~1,2% echo heure0=[%hh0%] echo heure1=[%hh1%] echo heure=[%hh%]
Le résultat de ce script est :
heure0=[8] heure1=[108] heure1=[08]
Explications :
@echo off set heure=%time:~0,2% if "%heure:~0,1%" == " " set heure=0%heure:~1,1% echo heure=[%heure%]
Le résultat de ce script est :
heure=[08]
Explications :