Batch : Afficher la date et l'heure dans un script (partie 1)

Plusieurs solutions existent pour afficher la date et l'heure courante dans un script batch.

Vous trouverez sur cette page une première solution (parmi d'autres) pour afficher ces données.

En utilisant cette 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 la seconde solution, vous découvrirez la puissance de la boucle for !

Utiliser les variables %date% et %time%

Les variables %date% et %time% permettent de récupérer respectivement la date et l'heure courante.

Exemple

@echo off
echo Date du jour : %date%
echo Heure courante : %time%

Le résultat de ce script est :

Date du jour : 03/10/2013
Heure courante : 18:30:24,45

  • %date% renvoie la date du jour dans le format suivant : jj/mm/aaaa
  • %time% renvoie l'heure courante dans le format suivant : hh:mm:ss,ms

Découper une chaîne de caractères

Pour découper une chaîne de caractères, il faut utiliser la syntaxe suivante :

%nom_variable:~positionDepart,nombreCaracteres%

Découper une date

Exemple

Affiche la date dans le format : aaaammjj à partir de la variable %date%

echo %date:~6,4%%date:~3,2%%date:~0,2%

Explications :

  • %date:~6,4% : Afficher 4 caractères à partir de la position 6
  • %date:~3,2% : Afficher 2 caractères à partir de la position 3
  • %date:~0,2% : Afficher 2 caractères à partir de la position 0
Chaîne de caractères 0 8 / 0 4 / 2 0 1 1
Position 0 1 2 3 4 5 6 7 8 9

L'exemple ci-dessus a comme résultat : 20110408.

Découper une heure

Il faut utiliser la même syntaxe que pour les dates :

echo %time:~0,2%%time:~3,2%%time:~6,2%

Explications :

  • %time:~0,2% : Afficher 2 caractères à partir de la position 0
  • %time:~3,2% : Afficher 2 caractères à partir de la position 3
  • %time:~6,2% : Afficher 2 caractères à partir de la position 6
Chaîne de caractères 2 3 : 1 5 : 0 0
Position 0 1 2 3 4 5 6 7

La commande time renvoie l'heure courante dans le format suivant : (h)h:mm:ss,ms

Attention, lorsque l'heure est inférieure à 10, %time:~0,2% affiche un espace avant l'heure. Vous ne pouvez donc pas utiliser cette solution si vous souhaitez récupérer la date et l'heure pour nommer un fichier (log de sauvegarde, etc...). Utilisez la solution ci-dessous pour palier à ce problème.

Solution 2 : utiliser la boucle for

Retrouvez la partie 2 de ce tutoriel sur la page : Afficher la date et l'heure dans un script batch (partie 2)

Twitter Facebook Google Plus Email

Posté le 03-10-2013