Bonjour, je dois faire un programme qui copie le contenu d'un dossier sur un serveur, vide le dossier de base, compte le nombre de fichiers dans le dossier de destination et si il y en a plus de 100, supprime les plus vieux. Mon problème se situe au moment de supprimer les plus vieux fichiers, ça ne marche et mon invité de commandes se ferme tout seul, je ne peux donc pas voir d'où vient l'erreur. Je précise que je le PC sur lequel le script est exécuté est un Windows XP et le serveur où sont copiées les données un Windows Server 2003. Voici la portion de code qui pose problème: rem CALCUL DU NOMBRE DE FICHIERS A SUPPRIMER set /a nb_files_to_del=%compt%-100 rem SUPPRESION DES FICHIERS TROP VIEUX if%nb_files_to_del% gtr 0 ( echo. [Batch] supprimer les fichiers plus vieux que 10 jours - Scripts/Batch. echo Suppression des%nb_files_to_del% plus vieux traces set /a compt2=0 for%%X in ("\\adresse_du_dossier_sur_le_serveur\*. *") do ( if%compt2% lss%nb_files_to_del% ( del%%X set /a compt2+=1 echo%%X))) echo Sauvegarde effectuee avec succes pause Le problème se situe dans la boucle for et j'avoue que je sèche.

Batch Supprimer Fichier Plus Vieux La

Dans le genre tu as aussi robocopy qui marche trés bien... 08/09/2010, 16h58 #13 Membre à l'essai Oups, je reviens au sujet de la syntaxe de la commande pour supprimer les fichiers selon leur taille en octet: do if%%~zi EQU 0 Comment écrire si les fichiers >= 1Go? Merci pour votre aide. 08/09/2010, 18h16 #14 Membre émérite L'unité c'est l'octet, soit 1073741824 octets pour 1Go. Pour supprimer un fichier c'est la commande del, à mettre à la place de echo. 1 2 if%%~zi geq 1073741824 echo%%i Comme la console, du moins sur win32, ne supporte que les opérations sur des entiers 32bits signés, tu risques d'avoir des résultats inattendus lorsque la taille des fichiers dépasse 1. 99Go. Peut-être qu'un utilitaire de la famille GNU pourrait combler cette lacune. 08/09/2010, 21h37 #15 Merci Minnesota Bonne remarque sur l'unité octet... Où avais-je la tête, déjà oublié les 1024 par octet.. Comment supprimer des fichiers anciens avec un batch ?. Le code%%~zi s'apparente à un dossier, mais comment coder pour tous les fichiers (files) du répertoire? Mais avant de supprimer les fichiers de 1Go, j'ai testé la suppression selon le nbe de jours écoulés et ça ne fonctionne pas, le script passe mais sans action: set jour=5 Je voudrais savoir si tu peux détailler la syntaxe, car comment les 5 jours dans mon exemple sont décomptés.. Où est la recherche de la date du fichier (date modifiée)?

Batch Supprimer Fichier Plus Vieux Port

1 2 3 4 5 6 7 8 @echo off set fich=chemin d'accès set jour= set /p jour= donner le nombre de jours a deduire: forfiles -p%fich% -s -m* -d-%jour% -c"cmd /c del @FILE" Conditions d'utilisation: doit se trouver dans le même dossier que le batch ou répertoire parent. chemin d'accès = chemin complet jusqu'au dossier ciblé exemple de chemin -->%systemdrive%\Endroitdestockage donner le nombre de jours a deduire = 1 ou 3 ou 20 ou 400... >danakil1 29/03/2010, 15h40 #4 Futur Membre du Club Je remonte un peu le sujet, mais cela me pose un problème pour les fichiers qui comportent des espaces, avez vous une idée pour que cela puisse également effacer les fichiers avec espaces? Batch supprimer fichier plus vieux château. Merci d'avance 29/03/2010, 17h10 #5 J'ai trouvé pour les fichiers avec espaces, c'est la commande suivante: forfiles -p%fich% -s -m*. * -d-%jour% -c"cmd /c del \"@FILE\" " Par contre est-il possible d'enchainer cette commande, avec une commande qui supprimerai les dossiers qui sont vide? (puisque la commande si dessus ne supprimer que les fichiers, et non les dossiers) Merci 30/03/2010, 08h06 #6 Tu ajoutes une boucle @echo off: our chaque dossier contenu sur le bureau vérifier si la taille est egal à 0 et supprime le dossier.

Press any key to continue... Thu 26 Feb 2009 - 11:59 j ai bien l impression que le pb est sur le _ de ton dossier as tu essayé dans un dossier sans ce symbole? Batch supprimer fichier plus vieux port. genre: pC:\GCTI\CustomServer sans confiction @echo off forfiles -pC:\GCTI\CustomServer^_^0 -s -m* -d-7 -c"cmd /c del @FILE" pause Thu 26 Feb 2009 - 12:02 j'ai reussi avec ceci: @echo off forfiles -p C:\GCTI\CustomServer_0 -s -m * -d -10 -c "cmd /c del @FILE" je te remercie pour tout laddy Thu 26 Feb 2009 - 12:12 De rien etrange le help donne pas d espace entre les differents paramètres. Thu 26 Feb 2009 - 12:23 j'ai plusieurs fichiers à purger dans différents répertoire customserver (customserver_1, customserver_1, etc.... ) mais je n'arrive pas à les purger. ci dessous ma ligne de commande forfiles -p C:\GCTI\CustomServer_* -s -m * -d -10 -c "cmd /c del @FILE" merci de ton aide Thu 26 Feb 2009 - 13:53