Batch : choisir le format de date

[Résolu/Fermé]
Signaler
Messages postés
50
Date d'inscription
dimanche 20 septembre 2009
Statut
Membre
Dernière intervention
19 février 2013
-
Messages postés
50
Date d'inscription
dimanche 20 septembre 2009
Statut
Membre
Dernière intervention
19 février 2013
-
Bonjour,

J'aimerais récupérer la date dans un fichier batch. La méthode de loin la plus recommandée est celle-ci :

echo %DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%

Cette approche, du moins sur Win7, dépend d'un format de date particulier : trois valeurs numériques, séparées par des barres obliques ou des tirets. Mon format de date est le suivant : 19 déc. 2012.

Est-il possible de récupérer une valeur numérique pour le jour, le mois et l'année, c'est-à-dire récupérer la date d'une façon indépendante du format ?


6 réponses

Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 331
hello
tu veux obtenir ce format : 19 déc. 2012. à partir des valeurs numériques ?
télécharger la commande date Unix pour Windows :
C:> date +"%d %b %Y"
20 Dec 2012
C:>

https://sourceforge.net/projects/unxutils/files/unxutils/current/
Messages postés
50
Date d'inscription
dimanche 20 septembre 2009
Statut
Membre
Dernière intervention
19 février 2013
3
Merci pour la réponse.

En fait, c'est plutôt l'inverse ; la commande %DATE% retourne la date dans le format que j'ai choisi dans mes préférences Windows, c'est-à-dire "19 déc. 2012".

J'aimerais récupérer des valeur numériques distinctes pour chaque composant (jour, mois et année).

D'ailleurs, je ne connais pas les outils Unix. Dois-je utiliser le fichier bin/sh.exe ?
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 331
pas besoin, date.exe tout seul suffit.
sinon en .bat, qqchose comme ça, m contient le mois en 3 lettres, %%b contient le mois en numérique
set mois.jan=1
set mois.fév=2
...
set mois.nov=11
set mois.déc=12

set m=%DATE:~3,2%
for /f "tokens=1,* delims==" %%a in ('set mois.%m%') do @echo %%b
Messages postés
50
Date d'inscription
dimanche 20 septembre 2009
Statut
Membre
Dernière intervention
19 février 2013
3
C'est proche, mais les accents causent des problèmes.

C'est étrange ; les accents s'affichent pourtant bien avec la commande %DATE%.
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 331
pour que DOS comprenne les accents dans un fichier .bat, il faut utiliser edit ou Wordpad (avec enregistrer sous)
Messages postés
50
Date d'inscription
dimanche 20 septembre 2009
Statut
Membre
Dernière intervention
19 février 2013
3
Eh bien, j'ai ouvert le fichier dans Wordpad, je l'ai enregistré comme document texte MS-DOS (*.txt) et j'ai ensuite changé son extension pour .bat.

Les accents sont affichés comme des virgules dans le fichier texte, mais ils apparaissent bien dans la fenêtre de ligne de commande.

C'est probablement le mieux qu'on puisse faire si la commande %DATE% ne retourne vraiment qu'une chaîne statique.

Merci énormément dubcek, tu m'as beaucoup aidé.