PB rotation de dossier BAT

[Fermé]
Signaler
Messages postés
27
Date d'inscription
jeudi 12 janvier 2012
Statut
Membre
Dernière intervention
11 novembre 2016
-
Messages postés
27
Date d'inscription
jeudi 12 janvier 2012
Statut
Membre
Dernière intervention
11 novembre 2016
-
Bonjours,

Je suis en train de modifier mon script de sauvegarde et bath, j'ai rencontré un problème au niveau de la rotation des dossiers.
Je souhaité gardé une historisation sur 5 jours.
J'ai trouvé ce ci sur le net et je voudrai l'adapté pour supprimer les fichiers et les dossiers.

rem Cette variable définie le dossier qu'il faut purger :
set chemin="B:\Sauvegarde\Jeux"

rem Cette variable définie le nombre de jour que doivent être garder les fichiers:
set jours=5

forfiles /p %chemin% /s /d -%jours% /m *.* /c "cmd /c del @FILE"

Mon problème c'est que ce script surprime que les fichiers mais pas les dossiers.

Ci quel qu'un a une idée ou une solution,

Merci d'avance

5 réponses

Messages postés
18267
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
25 septembre 2021
5 376
il y a là dans les exemples, l'utilisation de @isdir
c'est une variable vraie ou fausse, pas un nom de fichier
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc753551(v=ws.10)?redirectedfrom=MSDN
1
Merci

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

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
18267
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
25 septembre 2021
5 376
hello
la variable @isdir de FORFILES permet des tester si le fichier est un répertoire
Messages postés
27
Date d'inscription
jeudi 12 janvier 2012
Statut
Membre
Dernière intervention
11 novembre 2016
15
Bonjours dubcek et merci pour cette variable, malheureusement je n'est pas réussie a le faire marché correctement.

Pour commencer j'ai tester la commande suivant:


forfiles /p %chemin% /s /d -%jours% /m *.* /c "cmd /c del @isdir

Il me mes comme comme message:
Impossible de trouver "il affiche le chemin de la sources que je lui est renseigné".


Après j'ai essayer avec cette commende:


forfiles /p %chemin% /s /d -%jours% /m *.* /c "cmd /c rd @isdir

ou j'ai remplacer le "del" par un "rm"

et la il me mes comme message :

Le fichier spécifié est introuvable.


Aurai tu une idée ou une autre solution a mon problème.

Merci d'avance.
Messages postés
27
Date d'inscription
jeudi 12 janvier 2012
Statut
Membre
Dernière intervention
11 novembre 2016
15
Bonjours Dubcek

Merci pour le lien

J'ai regarder le lien que tu ma donnée, j'ai fait des tests, mais après le True je n'arrive pas a mettre un RD pour supprimé les dossiers.

voila ce que sa donnes

@echo off
cls

rem VARIABLES / CONSTANTES :
rem ------------------------------------------------------------

rem Cette variable définie le dossier qu'il faut purger :
set chemin="B:\Sauvegarde"

rem Cette variable définie le nombre de jour que doivent être garder les fichiers:
set jours=1

rem ------------------------------------------------------------

forfiles /p %chemin% /s /d -%jours% /m *.* /c "cmd /c if @ISDIR==TRUE rd /S /Q"


J'ai trouver cette commande sur le Net, mais quand je me bas sur celle la il m'affiche que le premier dossier.


forfiles -pz:\ -d-30 -c"cmd /c if @ISDIR==TRUE echo @FILE"

Le site ou j'ai trouver cette commande

https://www.clubic.com/forum/t/effacer-automatiquement-dossiers-de-plus-de-x-jours/396467

Je pence que la commande dois être bonne, mais que je doit pas l'utiliser de la bonne façon.

Ci tu vois mon erreur ou ci tu a une autre solution

Merci d'avance.
Messages postés
27
Date d'inscription
jeudi 12 janvier 2012
Statut
Membre
Dernière intervention
11 novembre 2016
15
Bonjour,

Je reviens vers vous pour demandé de l'aide, de puis ce temps je suis toujours bloqué au même stade.

Merci d'avance.