bonjour,
je suis confronté à la difficulté suivante : je récupère dans une chaine de caractères, (le nom d'un fichier de type nom_fichier.ext.save.date_format_US_sans_séparateur) une date, que je compare ensuite à une variable qui reçoit la date encours, toujours au format US, moins une valeur x pour donner une date de suppression, (l'idée étant donc de supprimer des fichiers en fonction d'une date définie).
Pour comparer ces 2 variables, je suis obligé de faire un "transtypage", de la date de suppression, pour qu'elle soit interprétée comme une chaine de caractère. Je compare ensuite les 2 chaines. Ça ne me convient pas.
J'ai essayé de faire le contraire : transtyper la variable date_format_US_sans_séparateur en la ré-injectant dans une variable déclare par
set /A date_format_US_sans_séparateur_num=%date_format_US_sans_séparateur%
Ça ne fonctionne pas....
mon code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| ....
set JoursAvPurge=5
set DateEnCours=%date:~6,4%%date:~3,2%%date:~0,2%
set /A DatePurge=%DateEnCours%-%JoursAvPurge%
set DatePurgeToString=%DatePurge%
...
...
for /F %%j in ('dir /OD /B %CheminRepSave%%%i') do (
set nomFic=%%j
set champ3=vide
....
if !champ3!==save (
REM on examine la date de creation du fichier pour la comparer a la date de purge
set DateCreaFichier=vide
for /f "tokens=4 delims=." %%a in ("%%j") do (
set DateCreaFichier=%%a
)
set /A DateCreaFichier=!DateCreaFichier!
if !DateCreaFichier! LEQ %DatePurge% (
echo %TIME% purge de %CheminRepSave%%%i\%%j >> %CheminLog%%FicLog%
del %CheminRepSave%%%i\%%j
)
... |
Si quelqu'un a une suggestion...
Partager