Batch : choisir le format de date

Résolu/Fermé
Latin1 Messages postés 50 Date d'inscription dimanche 20 septembre 2009 Statut Membre Dernière intervention 19 février 2013 - Modifié par Latin1 le 19/12/2012 à 21:48
Latin1 Messages postés 50 Date d'inscription dimanche 20 septembre 2009 Statut Membre Dernière intervention 19 février 2013 - 21 déc. 2012 à 14:17
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

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
20 déc. 2012 à 09:35
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/
0
Latin1 Messages postés 50 Date d'inscription dimanche 20 septembre 2009 Statut Membre Dernière intervention 19 février 2013 3
20 déc. 2012 à 15:35
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 ?
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
20 déc. 2012 à 15:54
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
0
Latin1 Messages postés 50 Date d'inscription dimanche 20 septembre 2009 Statut Membre Dernière intervention 19 février 2013 3
20 déc. 2012 à 22:25
C'est proche, mais les accents causent des problèmes.

C'est étrange ; les accents s'affichent pourtant bien avec la commande %DATE%.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 21/12/2012 à 07:56
pour que DOS comprenne les accents dans un fichier .bat, il faut utiliser edit ou Wordpad (avec enregistrer sous)
0
Latin1 Messages postés 50 Date d'inscription dimanche 20 septembre 2009 Statut Membre Dernière intervention 19 février 2013 3
21 déc. 2012 à 14:17
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é.
0