cherche logiciel ou .bat pour suppression dossier de plus de 7 jours

cherche logiciel ou .bat pour suppression dossier de plus de 7 jours - Logiciels - Windows & Software

Marsh Posté le 10-05-2019 à 17:31:47    

Bonjour,
voilà j'ai une caméra ip, qui enregistre des photos et vidéo sur détection
elle est paramétrée pour les mettre dans ce dossier:
E: /Camera
pour chaque jour, elle crée à cet emplacement;
un dossier avec la date du jour, avec à l’intérieur deux sous dossiers
un:
- images
et un
- record
comme sur cette photo
https://image.noelshack.com/minis/2019/19/5/1557502037-cam.png
 
a l'heure actuelle j'ai ce .bat qui s’exécute 1 fois par semaine tout les dimanche à 22h
le hic c'est que certe, au bout d'une semaine ça efface bien tout le contenu du dossier E: /Camera,
mais c'est pas bon car en effet si il s'est passé quelque chose le dimanche dans la journée ou même le samedi et que je ne m'en suis pas rendu compte avant 22h alors la vidéo sera effacé à 22h.

Citation :

SET dossier=Camera
SET dossier=%~dp0%dossier%
DEL "%dossier%\*.*" /F/Q/A
FOR /D %%a IN ("%dossier%\*" ) DO RD "%%a" /S/Q


 
ce que je voudrais c'est que ce .bat s’exécute bien une fois par semaine le dimanche à 22h mais qu'il efface seulement le contenue du dossier E: /Camera qui a + de 7 jours pour que j'ai 7 jour pour me rendre compte s'il s'est passé quelque chose , pour pouvoir regarder les vidéo et images.
 
j’espère que vous comprendrez ce que je veux dire, je veux en fait que soit sauvegardé 7 jours d'enregistrement.
par exemple
01/01/2020
02/01/2020
03/01/2020
04/01/2020
05/01/2020
06/01/2020
07/01/2020
le 8/01/2020 restera à l'emplacement E: /Camera
02/01/2020
03/01/2020
04/01/2020
05/01/2020
06/01/2020
07/01/2020
08/01/2020
le 09/01/2020 restera à l'emplacement E: /Camera
03/01/2020
04/01/2020
05/01/2020
06/01/2020
07/01/2020
08/01/2020
09/01/2020
 
etc .............
précision je suis sous Windows 10
 
merci beaucoup pour votre aide


Message édité par kinder53 le 10-05-2019 à 17:39:26
Reply

Marsh Posté le 10-05-2019 à 17:31:47   

Reply

Marsh Posté le 11-05-2019 à 09:51:05    

salut, sois prudent, ca peut t'aider a completer ton script peut etre
 
Attention : pour tester au début, change la valeur del par echo pour afficher les fichiers a supprimer sans les supprimer !!!
 
https://www.synergeek.fr/forfiles-u [...] -fichiers/


Message édité par azertyiop le 11-05-2019 à 10:02:08
Reply

Marsh Posté le 11-05-2019 à 11:26:40    

on est en 2019 hein, on a inventé PowerShell depuis plus de 10 ans, il serait peut être temps d'y passer … Ca se fait en une ligne.
 

Code :
  1. Get-ChildItem –Path "E:\Camera" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-7))} | Remove-Item

Reply

Marsh Posté le 11-05-2019 à 13:23:31    

bonjour Je@nb,
je te remercie mais ça ne fonctionne pas
code trouvé ailleurs,  
on voit toute la progression dans la fenêtre qui s'ouvre et il crée un.log
 :bounce:  
 

Code :
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. rem Le chemin vers le dossier
  4. set Folder=E:\Camera
  5. rem chemin vers le dossier où sont stockés les log
  6. set FOLDER_LOG=E:\Camera-log
  7. set jour=15
  8. rem True : le code se ferme après exécution
  9. rem False : le code attends l'appui d'une touche
  10. set exitAfterEnd=False
  11. rem On recupère la Date
  12. call :getDate CurrentYear CurrentMonth CurrentDay
  13. set c=[CONSOLE]
  14. echo;!c! !CurrentYear! - !CurrentMonth! - !CurrentDay!
  15. echo;!c! Work in "!Folder!"
  16. echo;
  17. rem On se place dans le dossier "!Folder!"
  18. pushd "!Folder!"
  19. rem On itère sur chacun des dossiers
  20. for /f "tokens=*" %%i in ('dir /b /ad') do (
  21. rem On parse la Date
  22. call :Parse "%%~nxi" Year Month Day
  23. rem On fait la différence en jour avec la date actuelle
  24. call :DateDiff "!CurrentMonth!-!CurrentDay!-!CurrentYear!" "!Month!-!Day!-!Year!" Diff
  25. rem On affiche le nom du dossier entrain d'être traité
  26. echo;!c! Folder "%%~nxi":
  27. echo;        - Parsing: "!Month!-!Day!-!Year!"
  28. echo;        - DayDiff: !Diff!
  29. rem Si la différence en jour est supérieur ou égale à 7, on supprime
  30.   if !Diff! GEQ !jour! (
  31.     echo;        - Status: Deleted 
  32.     rd /s /q "%%~i"  >nul 2>&1
  33.     echo;"!Folder!\%%~nxi" >> "!FOLDER_LOG!\!CurrentMonth!!CurrentDay!!CurrentYear!.log"
  34. rem Sinon on fait rien
  35.   ) else (
  36.     echo;        - Status: ^NOT Deleted 
  37.   )
  38. )
  39. rem On sort du dossier "!Folder!"
  40. popd
  41. rem On affiche que le traitement est fini
  42. echo;
  43. echo;!c! End^^!
  44. if /i "!exitAfterEnd!"=="true" exit
  45. pause>nul&exit
  46. :getDate <Output:Year> <Output:Month> <Output:Day>
  47.   set %~1=&set %~2=&set %~3=
  48.   for /f "skip=1 tokens=1-3" %%1 in ('WMIC Path Win32_LocalTime Get Year^,Month^,Day /Format:table') do (
  49.     if "!%~1!"=="" set "%~1=0000%%3"
  50.     if "!%~2!"=="" set "%~2=00%%2"
  51.     if "!%~3!"=="" set "%~3=00%%1"
  52.   )
  53.   set %~1=!%~1:~-4!
  54.   set %~2=!%~2:~-2!
  55.   set %~3=!%~3:~-2!
  56. Exit /b 0
  57. :Parse <Date> <Year> <Month> <Day>
  58.   set tmpdate=%~1
  59.   set %~2=!tmpdate:~0,4!
  60.   set %~3=!tmpdate:~4,2!
  61.   set %~4=!tmpdate:~6,2!
  62. Exit /b 0
  63. :DateDiff <Date1> <Date2> <Output:Diff>
  64.   echo Wscript.Echo #%~1# - #%~2# > "%temp%\tmp.vbs"
  65.   for /f %%i in ('cscript /nologo "%temp%\tmp.vbs"') do set "%~3=%%i"
  66.   del "%temp%\tmp.vbs" /q
  67. Exit /b 0


Reply

Marsh Posté le 11-05-2019 à 14:59:50    

[:prozac] putain ce bordel inutile

Reply

Marsh Posté le 11-05-2019 à 15:28:30    

peut être mais celui ci fonctionne c'est le principal
et reste polie s'il te plait merci


Message édité par kinder53 le 11-05-2019 à 15:35:30
Reply

Marsh Posté le 13-05-2019 à 08:42:09    

merci du retour, bon faudra quand meme investir dans un plus gros disque a l'avenir ^^

Reply

Marsh Posté le 13-05-2019 à 08:44:35    

J'aimerais bien savoir ce qui ne fonctionne pas dans la ligne Powershell de Je@nb, parce que franchement je ne vois pas ...
 
Et puis ce script .... Au secours....
 [:mike hoksbiger:3]

Message cité 1 fois
Message édité par nex84 le 13-05-2019 à 08:44:54

---------------
#TeamNoBidouille || Come to the Dark Side, we have cookies || Mangez 5 fruits et légumes par an ! || Le digital, c'est les doigts
Reply

Marsh Posté le 13-05-2019 à 10:26:20    

mon script supprime les fichiers, là il veut supprimer les dossiers correspondant aux jours en questions.
Ca aurait aussi pris qq lignes en powershell mais vu qu'il a sorti son usine à gaz, flemme de réfléchir

Reply

Marsh Posté le 13-05-2019 à 16:09:28    

nex84 a écrit :

J'aimerais bien savoir ce qui ne fonctionne pas dans la ligne Powershell de Je@nb, parce que franchement je ne vois pas ...
 


 
Probablement le fait qu'il a essayé de l'exécuter dans cmd...


---------------
Survivre à sa migration WP->Android /  Les features Windows que vous ne connaissez pas
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed