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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
set /A date_format_US_sans_séparateur_num=%date_format_US_sans_séparateur%
Ça ne fonctionne pas....
mon code :
Code : 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
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...