Les variables d'environnement %DATE%
et %TIME%
fournissent la date et l'heure actuelles sur les machines Windows sur la ligne de commande et dans un fichier de commandes.
Malheureusement, ces valeurs sont sensibles aux paramètres régionaux! Cela signifie que, par exemple, sur une machine allemande, vous obtiendrez
26.1.2011
au lieu de
2011-26-01
cela bouscule le tri si vous souhaitez utiliser cette variable dans un nom de fichier.
Existe-t-il un moyen simple de récupérer une YYYY-MM-DD
chaîne de date non locale dans un fichier de commandes Windows?
Pour le moment, je travaille avec cette solution plutôt délicate:
for /f "tokens=1,2,3,4 delims=. " %%i in ('date /t') do set date=%%k-%%j-%%i
echo %date%
mais ceci est maintenant spécifique aux paramètres régionaux allemands - évidemment, une solution complètement indépendante serait beaucoup plus agréable.
L'OS en question est Server 2008. Je préférerais de loin ne pas utiliser un outil tiers, si possible.
for /f %%x in ('wmic os get localdatetime ^| findstr /b [0-9]') do @set X=%%x
c'est un tout petit peu plus joli. Il existe également une version plus compacte disponible ici , à savoir dans ce commentaire .findstr
solution est bien meilleure, comme pour mon cas, l'originalfor
(sans leskip
) réitère 3 fois. Une fois pour le mot"LocalDateTime"
, une deuxième fois pour la date réelle et une troisième fois pour une valeur vide (peut-être un saut de ligne?).Voici une double ligne que j'utilise, qui semble fonctionner indépendamment de la version de Windows ou des paramètres d'heure locale:
Cela définira une variable appelée% CUR_DATE% au format standard ISO suivant:
J'ai essayé d'en faire une doublure avec &&, mais cela ne semblait pas prendre, alors j'ai eu recours à la version à deux lignes. J'espère que cela t'aides.
la source
J'utilise cette astuce pour obtenir UTC ..
Cependant, cela a pour effet secondaire de changer brièvement l'ensemble du système en UTC. C'est probablement OK sur un poste de travail personnel, mais je ne sais pas quel serait l'impact sur un grand serveur de production, qui devrait probablement être réglé sur UTC de toute façon.
la source