Supprimer les 10 fichiers les plus vieux dans un répertoire.

[Résolu/Fermé]
Signaler
Messages postés
68
Date d'inscription
dimanche 16 mars 2014
Statut
Membre
Dernière intervention
24 janvier 2017
-
Messages postés
68
Date d'inscription
dimanche 16 mars 2014
Statut
Membre
Dernière intervention
24 janvier 2017
-
Bonjour,
Je débute totalement en batch et j'aimerais supprimer les 10 fichiers les plus ancien de mon répertoire.
Comment dois-je incorporer mon compteur dans le code suivant pour que ceci fonctionne?

@ECHO OFF
SETLOCAL EnableDelayedExpansion

CD \test
FOR /F %%i IN (' DIR /OD /B') DO IF "!OLD!"=="" SET OLD=%%i
DEL /P %OLD%


Merci pour votre aide!

4 réponses

Messages postés
18247
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 août 2021
5 331
hello
tester ça, enlever le echo si c'est ok
@echo off
setlocal enableDelayedExpansion
set /a c=0
for /f "delims=" %%a in ('dir /o:d /b') do (
set /a c+=1
if !c! LEQ 10 echo del "%%a"
)
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
18247
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 août 2021
5 331
il manque un " : "H:\*.pdf"
sinon, est ce que
for /f "delims=" %%a in ('dir /o:d /b "h:\*.pdf" ') do echo %%a

affiche les noms de fichier ?
sinon mettre avant le for :
cd /D H:\
for /f "delims=" %%a in ('dir /o:d /b *.pdf') ...
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
68
Date d'inscription
dimanche 16 mars 2014
Statut
Membre
Dernière intervention
24 janvier 2017

Votre script fonctionne du tonnere Dubcek, merci.
Par contre je n'arrive pas à sélectionner un répertoire.
Le cd ne fonctionne pas... j'ai même essayé de mettre le chemin dans une variable c'est dire ^^
Lorsque je met le chemin dans la boucle for, par exemple :
for /f "delims=" %%a in ('dir /o:d /b "h:\*.pdf) do (
ça ne marche pas non plus ^^
Tandis que le *.pdf fonctionne très bien.

La réponse que je reçois de ma boite de commande est "fichier introuvable". Le chemin est pourtant le bon.

Si par exemple je fais un move à la place du del, le répertoire de destination fonctionne bien, mon objectif maintenant, c'est de récupérer mes fichiers sur un chemin spécifique.
Si vous trouvez une alternative, je serais tout ouïe!

Merci d'avance pour votre aide!
Messages postés
3276
Date d'inscription
lundi 11 novembre 2013
Statut
Membre
Dernière intervention
18 juillet 2021
1 619
Salut.

for /f "delims=" %%a in ('dir /o:d /b "h:\*.pdf) do ( ===> manquerait pas un guillemet ?

Tu peux donner le script que tu utilises, afn de voir où sont les potentielles erreurs ?

++
Messages postés
68
Date d'inscription
dimanche 16 mars 2014
Statut
Membre
Dernière intervention
24 janvier 2017

Pardon, je fais des bêtises, les guillemets j'ai oublié de les mettre, voici le code jusque là fonctionnel ^^

@echo off
setlocal EnableDelayedExpansion

set /a c=0
for /f "delims=" %%a in ('dir /o:d /b "*.pdf"') do (
set /a c+=1
if !c! LEQ 2 move "%%a" "H:\sauvegarde"
)
pause

A partir du moment où j'essaye de faire un chemin quelque part on me dit, " fichier spécifié introuvable"
Du coup, je suis obligé de mettre mon script dans le répertoire, ce que j'aurais préféré éviter ;)
Messages postés
68
Date d'inscription
dimanche 16 mars 2014
Statut
Membre
Dernière intervention
24 janvier 2017

for /f "delims=" %%a in ('dir /o:d /b "h:\*.pdf" ') do echo %%a
Affichait effectivement les fichiers.

A partir du moment ou en enlevait le echo, il voulait pas entrer dans le faire,

En tout cas le "cd /D H:\" à marché, bravo !... j'avais oublié le petit /D haha

Dubcek, l'homme bionique, tu as fait face aux petites erreurs de mon code, je t'en remercie grandement !

Problème résolu !