Etant actuellement en stage dans une grande entreprise, il m'a été demander de réaliser un script en Batch ou VB pour supprimer des fichiers temporaire mais selemement les fichiers vieux de plus de 3 heures.
Je ne suis vraiment pas expert en script, je découvre.
Voici le code trouvé sur internet que j'ai tenté de modifié sans résultat avec un message d'erreur.
@echo off
set fich=C:\Users\paje01\Desktop\TEST\test1 set jour=3
Appuyez sur une touche pour continuer... Erreur : Argument ou option non valide - « cmd /c del @FILE ». Entrez "FORFILES /?" pour afficher la syntaxe. Appuyez sur une touche pour continuer...
Voila, si quelqu'un a une solution a m'apporter :)
Merci et bonne journée,
Après recherche j'ai reussi a faire un script fonctionel pour les jours mais pour les heures je susi toujours en recherche avec pas mal de galère, voici mon test :
@ECHO OFF REM DEBUT DU SCRIPT
REM AFFICHAGE HEURE ETS MINUTES
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set heure=%%a for /f "tokens=1,2,3delims=:" %%a in ('time /t') do set minute=%%b echo Heure : %heure% echo Minute : %minute%
REM ///////CREATION DOSSIER CONTENANT HEURES ET MINUTES
REM ///////echo Test > fichier_%heure%%minute%.txt
pause
REM VARIABLES TEMPS ET DOSSIERS REM REPERTOIRE CONTENANT NOS FICHIERS SET REPDOSS=C:\Users\paje01\Desktop\TEST\test1
REM NOMBRE DE JOUR DE CONSERVATION MAXIMUM SET HMAX=%time~0,2%
pause
REM SUPPRIME LES FICHIERS forfiles /P %REPDOSS% /m *.* /D -%HMAX% /C "cmd /c del /q @path"
pause REM ///// TEST REM /////ForFiles /P "%REPDOSS%" /D -%JOURMAXS% /C "CMD /C if @ISDIR==TRUE echo RD /Q /S @FILE &RD /Q /S @path"
REM AFFICHER UN MESSAGE APRES LA SUPRESSION
echo Msgbox "Le script a bien ete execute et vos fichiers sont supprimes." pause
REM VARIABLES TEMPS ET DOSSIERS REM REPERTOIRE CONTENANT NOS FICHIERS SET REPDOSS=C:\Users\paje01\Desktop\TEST\test1 REM NOMBRE DE JOUR DE CONSERVATION MAXIMUM SET JOURMAX=1
REM SUPPRIME LES FICHIERS forfiles /P %REPDOSS% /m *.* /D -%JOURMAX% /C "cmd /c del /q @path" pause
REM SUPPRIMER LES DOSSIERS REM ForFiles /P "%REPDOSS%" /D -%JOURMAXS% /C "CMD /C if @ISDIR==TRUE echo RD /Q /S @FILE &RD /Q /S @path"
J'ai repris ton code pour éliminer les fichiers/dossiers plus vieux que 1 jour, ensuite j'ai crée le code pour supprimer ceux plus vieux que 3 heures :
@echo off setlocal enableextensions enabledelayedexpansion chcp 1252 >nul
REM REPERTOIRE CONTENANT NOS FICHIERS SET REPDOSS=C:\Users\paje01\Desktop\TEST\test1
REM NOMBRE DE JOUR DE CONSERVATION MAXIMUM SET JOURMAX=1
cd /d %REPDOSS% || exit /b 1
REM SUPPRIME LES FICHIERS forfiles /D -%JOURMAX% /C "cmd /c if @ISDIR==FALSE (del /f /q @file)"
REM SUPPRIMER LES DOSSIERS forfiles /D -%JOURMAX% /C "cmd /c if @ISDIR==TRUE (rd /Q /S @file)"
PAUSE
:: RECUPERER L'HEURE ACTUELLE ET LA TRANSFORMER EN MINUTES for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do ( set H_actuelle=%%a set M_actuelle=%%b
if !H_actuelle! LSS 10 (set H_actuelle=!H_actuelle:~-1!) if !M_actuelle! LSS 10 (set M_actuelle=!M_actuelle:~-1!)
set /a total_actuelle=!H_actuelle!*60+!M_actuelle! )
pause
:: LISTER LES FICHIERS ET DOSSIERS for /f "delims=" %%K in ('dir /b') do (
:: RECUPERER L'HEURE POUR CHAQUE FICHIER/DOSSIER for /f "skip=5 tokens=1,2,3,* delims=: " %%A in ('2^>nul dir "%%~K" ^| findstr /v "octets"') do ( set heure=%%B set minute=%%C
:: TRANSFORMER L'HEURE EN MINUTES if !heure! LSS 10 (set heure=!heure:~-1!) if !minute! LSS 10 (set minute=!minute:~-1!)
set /a total_fichier=!heure!*60+!minute!
:: DETERMINER L'ECART ET SUPPRIMER LES FICHIERS/DOSSIERS TROP VIEUX set /a ecart=!total_actuelle!-!total_fichier!
if !ecart! GTR 180 (2>nul rd /s /q "%%~K" || del /f "%%~K") if !ecart! LSS -1440 (2>nul rd /s /q "%%~K" || del /f "%%~K") if !ecart! LSS 0 (if !ecart! GTR -1260 (2>nul rd /s /q "%%~K" || del /f "%%~K")) ) ) pause
exit /b 0
“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
Si vous voulez de l'aide il faut décrire précisément votre problème, il ne suffit pas de dire ça ne marche pas.
Quelle partie du script ne fonctionne pas ? La 1ère partie qui efface les dossiers/fichiers plus vieux que 1 jour ou bien la deuxième partie qui efface les fichiers/dossiers vieux de plus de 3 heures ?
Est-ce que votre problème concerne les fichiers ou bien les dossiers ou bien les 2 ?