Comparer date du jour & nom de dossier

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
jmr
Batcheur occasionnel
Messages : 2
Enregistré le : 11 juil. 2013 19:05

Comparer date du jour & nom de dossier

Message par jmr »

Bonjour à vous !

Je suis totalement débutant j'annonce !
J'ai créer ça:

SET D=%DATE%
SET DA=%D:/=-%
ECHO %DA%
taskkill /im "outlook.exe" /f /t
timeout /t 2
xcopy "C:\mail\*.pst" "\\nas01\archives pst\Jmr\%DA% \"
timeout /t 2
start "" "outlook.exe"

Je me retrouve donc en destination avec un dossier au nom du jour sous ce format dd-mm-aaaa

Mais voilà j'aimerai lancer ce .bat au démarrage de la session user. Et j'aimerai qu'une comparaison soit faite entre la date du jour et la date du dossier (créé lors d'un premier lancement).
Si il y a un écart de plus de 30 jours => copie. Sinon non évidement.

Donc voilà ce que j'aimerai :

SET D=%DATE%
SET DA=%D:/=-%
ECHO %DA%
:mrgreen: IF no dossier in "\\nas01\archives pst\Jmr" goto copy :mrgreen:
:mrgreen: IF "DATE TODAY" LSS 30 days => DATE DOSSIER in "\\nas01\archives pst\Jmr" goto fin :mrgreen:
:mrgreen: IF "DATE TODAY" GTR 30 days => DATE DOSSIER in "\\nas01\archives pst\Jmr" goto copy :mrgreen:
:copy
taskkill /im "outlook.exe" /f /t
timeout /t 2
xcopy "C:\mail\*.pst" "\\nas01\archives pst\Jmr\%DA% \"
timeout /t 2
start "" "outlook.exe"
:fin

J'espère avoir de l'aide... J'espère surtout avoir été suffisamment précis pour donner envie.

Merci par avance ! :idea:
jmr
Batcheur occasionnel
Messages : 2
Enregistré le : 11 juil. 2013 19:05

Re: Comparer date du jour & nom de dossier

Message par jmr »

J'ai trouvé la solution pour ceux que ça intéresse...

Un VBS :

set shell=createobject("wscript.shell")
dim fso, file, fileinfo, MyDelta
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.GetFile("\\nas01\archives pst\Jmr\archive.pst")
fileinfo = "Creation " & file.DateCreated & vbCr
fileinfo = fileinfo & "Dernier accès: " & file.DateLastAccessed & vbCr
fileinfo = fileinfo & "Derniere modification: " & file.DateLastModified
MyDelta = DateDiff("d", file.DateCreated,Now)
If 30 < MyDelta Then
shell.run "C:\Users\jmr\Desktop\BATCH\OUI.bat"
Else
End If

Qui tape un BAT si le backup a plus de 30 jours par rapport à la date du jour.
Donc le BAT :

del "\\nas01\archives pst\jmr" /q
taskkill /im "outlook.exe" /f /t
timeout /t 3
xcopy "C:\mail\archive.pst" "\\nas01\archives pst\jmr \"
start "" "outlook.exe"

Voilà j'espère que ça aidera quelqu'un.
Répondre