Bonjour à tous,
J'ai un souci avec un script DOS dont je n'arrive pas à éclaircir le mystère, mais je vous explique d'abord mon script.
Mon script copie des fichiers logs du jour (ou de la veille le cas échéant) et m'envoie leur contenu dans un mail.
1 - Le fichier crée un DossierA
2 - Le script vérifie si il existe des fichiers crées aujourd'hui dans un DossierB
2.1 - Si oui, il va a 7
2.2 - Si non, il va a 3 pour changer la date
3 - Les fichiers n'ont pas été copié donc je vais changer la date du jour avec la date d'hier pour copier les fichiers de la veille
3.1 - Si aujourd'hui on est le 1er tu vas changer le mois (il va a 4)
3.2 - Si aujourd'hui on est pas le 1er tu va a 5 pour changer le jour
4 - On va vérifier le mois
4.1 - Si le mois est pair alors le jour de la veille est 31
4.2 - Si le mois est impair alors le jour de la veille est 30
4.3 - Si le mois est Février alors le jour de la veille est 28
4.4 - En plus d'un des 3 trois cas précédents, on change le numéro du mois avec le numéro du mois d'avant.
5 - Je change le numéro du jour par celui de la veille
6 - Maintenant qu'on a mis changé la date d'aujourd'hui par celle de la veille on ré-essaye de copier les fichiers de la veille.
7 - J'écris le contenu de tous les fichiers récupérés dans un fichier texte que je copie dans un DossierC
8 - J'envoie le fichier texte final par mail.
Voila pour le déroulement, voici maintenant le code :
Code :
- ECHO ON
- cd \
- mkdir c:\DossierA
- for /f "tokens=1-3 delims=/ " %%a in ('date/t') do set MM=%DATE:~4,2%
- for /f "tokens=1-3 delims=/ " %%a in ('date/t') do set DD=%DATE:~7,2%
- for /f "tokens=1-3 delims=/ " %%a in ('date/t') do set YY=%DATE:~10,4%
- xcopy C:\DossierB\*.* C:\DossierA\ /D:%MM%/%DD%/%YY%
- IF exist c:\DossierA\*.log GOTO suite
- IF not exist c:\DossierA\*.log GOTO dateavant
- :dateavant
- if %DD%==01 GOTO moisavant
- if %DD% NEQ 01 GOTO continue
- :moisavant
- if %MM%%2==0 set /a DD=30
- if %MM%%2 NEQ 0 set /a DD=31
- if %MM%==02 set /a DD=28
- set /a MM=%MM%-1
- :continue
- set /a DD=%DD%-1
- xcopy C:\DossierB\*.* c:\DossierA\ /D:%MM%/%DD%/%YY%
- :suite
- cd \
- cd c:\DossierA
- type *.log > %DD%-%MM%-%YY%.txt
- xcopy %DD%-%MM%-%YY%.txt c:\DossierFinal\
- cd \
- cd c:\DossierA
- del /Q *.*
- cd \
- rmdir DossierA
- cd \
- //Et j'envoie par mail
|
Le soucis est que pour la première condition :
IF exist c:\DossierA\*.log GOTO suite
IF not exist c:\DOssierA\*.log GOTO dateavant
Il ne la vérifie pas ! et change la date n'importe comment !
Donc selon vous, qu'est-ce qui cloche?
---------------
Hypershade's Gallery