Bonjour,

J'ai un script *.bat qui traite des fichiers en entrée.

Durant le traitement, il génère, pour chaque fichier en entrée, une série de fichiers.

Je souhaite horodater ces fichiers générés, afin de ne pas les écraser si je traite plusieurs fichiers en entrée à la suite.

Tout marche bien, au détail près de... l'horodatage !

En fait, j'ai beau passer plusieurs fois dans la boucle, la variable "dt" conserve sa valeur initiale.

Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
@echo off
 
rem Parcours de tous les fichiers en attente
for /f %%f in ('dir /b in') do (
echo Traitement du fichier %%f
 
rem Récupération de la date et heure
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
 
rem Traitement des fichiers qui dure plusieurs secondes (...)
 
rem Archivage des derniers fichiers générés
copy "out\*.csv" "out\archives\*.%dt:~0,14%" /Y
del "out\*.csv" /F /Q
 
rem Archivage du fichier traité
move "in\%%f" archives
)