Bonjour à tous!
J'ai un problème très bizarre, en faite j'ai créé un programme qui doit trier les fichiers xml d'un dossier selon la date. Ceux plus vieux de 3 mois sont supprimés, ceux ayant moins de 3 mois et ayant plus de 8 jours sont déplacés dans un autre dossier.
Mon programme fonctionne bien sauf pour les mois de août et septembre, pour ces deux mois je ne peux pas faire de calcul avec le numéro du mois.
Voici 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
@echo off
title gestion des logs
set cheminLogs=c:\essai
set dateSys=%DATE%

cd %cheminLogs%
if EXIST lastTwoMonths goto move
	mkdir lastTwoMonths 

:move
	for /f "tokens=3 delims=/ " %%b in ('date/t') do set mois=%%b
	for /f "tokens=2 delims=/ " %%b in ('date/t') do set nbJour=%%b
	for /f "tokens=4 delims=/ " %%b in ('date/t') do set annee=%%b

	set /A annee=%annee%-1900
	
	set /A mois=12*%annee%+%mois%

	set /A nbjour=365*%annee%+30*%mois%+%nbjour%

for /r %%a in (*.xml) do (
	set nom=%%a
	call :traitement
)

:traitement
	for /f "skip=4 tokens=1" %%a in ('dir "%nom%" /tw /-c /a:-d-s-h^|find /v "(s)"') do set dateModif=%%a

	for /f "tokens=1 delims=/ " %%b in ('echo %dateModif%') do set jourModif=%%b
	for /f "tokens=2 delims=/ " %%b in ('echo %dateModif%') do set moisModif=%%b
	for /f "tokens=3 delims=/ " %%b in ('echo %dateModif%') do set anneeModif=%%b

	set /A anneeModif = %anneeModif%-1900

	set /A moisModif=12*%anneeModif%+%moisModif%
	
	set /A jourModif=365*%anneeModif%+30*%moisModif%+%jourModif%

	set /A diffMois=%mois%-%moisModif%

	if %mois% equ %moisModif% goto garder

	if %diffMois% lss 3 goto garder
	del %nom%
	goto fin
	rem passage à la fin de la boucle et passage au fichier suivant

	:garder
	set /A difference=%nbJour%-%jourModif%
	
	if %difference% lss 8 goto laisser
	echo on déplace le log
	move %nom% %cheminLogs%\lastTwoMonths
	goto fin

	:laisser
	echo ce log n'est pas deplace

	:fin
voici mon erreur lors de la multiplication par le numéro de mois :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Nombre non valide. Les constantes numériques doivent être soit décimales <17>, soit hexadécimales <0x11>, soit octales <021>
Je suis en environnement windows 2000.

Merci d'avance