Comme cela a été noté, l'analyse de la date et de l'heure n'est utile que si vous connaissez le format utilisé par l'utilisateur actuel (par exemple, MM/jj/aa ou dd-MM-yyyy pour n'en citer que deux). Cela pourrait être déterminé, mais le temps de faire tout le stress et l'analyse syntaxique, vous vous retrouverez toujours dans une situation où un format inattendu est utilisé, et d'autres ajustements seront nécessaires.
Vous pouvez également utiliser un programme externe qui renverra un slug de date dans votre format préféré, mais cela présente l'inconvénient de devoir distribuer le programme utilitaire avec votre script/batch.
Il existe également des astuces de lots utilisant l'horloge CMOS de manière assez brute, mais c'est trop proche des fils nus pour la plupart des gens, et ce n'est pas toujours l'endroit préféré pour récupérer la date et l'heure.
Vous trouverez ci-dessous une solution qui permet d'éviter les problèmes susmentionnés. Oui, elle introduit d'autres problèmes, mais pour mes besoins, j'ai trouvé que c'était la solution la plus simple, la plus claire et la plus portable pour créer un horodatage dans les fichiers .bat pour les systèmes Windows modernes. Ce n'est qu'un exemple, mais je pense que vous verrez comment le modifier pour d'autres formats de date et/ou d'heure, etc.
reg copy "HKCU\Control Panel\International" "HKCU\Control Panel\International-Temp" /f
reg add "HKCU\Control Panel\International" /v sShortDate /d "yyMMdd" /f
@REM reg query "HKCU\Control Panel\International" /v sShortDate
set LogDate=%date%
reg copy "HKCU\Control Panel\International-Temp" "HKCU\Control Panel\International" /f
1 votes
Duplicata possible de Comment obtenir la date actuelle sur la ligne de commande Windows, dans un format approprié pour l'utiliser dans un nom de fichier ?
0 votes
Diviser %date% dans un fichier batch sans tenir compte des paramètres régionaux
0 votes
Vous pouvez remplacer les espaces vides sur votre
datetimef
et mettez des 0 à la place. Dans votre exemple :SET datetimef=%datetimef: =0%