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

Résolu/Fermé
Fontainard Messages postés 68 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 24 janvier 2017 - 2 févr. 2015 à 11:56
Fontainard Messages postés 68 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 24 janvier 2017 - 3 févr. 2015 à 11:31
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!
A voir également:

4 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
2 févr. 2015 à 12:46
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
3 févr. 2015 à 11:15
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
Fontainard Messages postés 68 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 24 janvier 2017
Modifié par Fontainard le 3/02/2015 à 11:05
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!
0
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 ?

++
0
Fontainard Messages postés 68 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 24 janvier 2017
3 févr. 2015 à 11:22
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 ;)
0
Fontainard Messages postés 68 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 24 janvier 2017
3 févr. 2015 à 11:31
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 !
0