[BATCH] Suppression de doublons de fichiers ?

Fermé
slam - 24 nov. 2010 à 08:46
cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 - 25 nov. 2010 à 22:47
Bonjour,

Je cherche à réaliser un .bat me permettant de rechercher les doublons de fichiers dans une arborescence (dossier et sous dossier) pour les supprimer. Et à vrai dire je ne sais pas très bien si cela est réalisable en BATCH et par où commencer (novice en la matière).

La chose étant que cela ne s'arrête pas à UN seul fichier, mais tous ceux de l'arborescence.

Je m'explique:

1) Le programme devra se placer sur un disque dur externe Z:\ par exemple.
2) Dans l'arborescence du disque, se placer dans le premier dossier\sous_dossier\sous_sous_dossier\etc..\premier_fichier (de n'importe quel nom ou extension *.* ).

3) stocker ses infos nom.extension , taille, date modif , dans des variables
4) faire ce que j'appellerai un scan de l'arborescence de Z:\, passer dans chaque dossier, et tester chaque fichier, si un doublon est trouvé le supprimer et continuer.
5) une fois fait pour le premier fichier, rebelotte avec le second et ainsi de suite en se baladant de fichier en fichier et dossier en dossier dans l'arborescence du disque.

Cela me semble un peu fastidieux et peut être irréalisable en BATCH, donc si vous avez des postes ou d'autres langages à proposer pour cela je suis preneur.

:) merci


A voir également:

2 réponses

thanassos Messages postés 1706 Date d'inscription lundi 19 février 2007 Statut Contributeur Dernière intervention 12 février 2016 137
24 nov. 2010 à 08:51
Bonjour,
alors déjà je ne pense pas qu'un Batch puisse récupérer ces informations mais à vérifier au cas ou.
Pourquoi veux tu obligatoirement faire ça en Batch?
Sinon je peux te proposer une solution à étudier qui consisterai à dire à ton batch de faire un listing de ton disque dans un fichier txt, étudier ce fichier voir si il y a des doublons de noms puis supprimer un des deux doublons.
0
cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
Modifié par cs-bilou le 26/11/2010 à 00:00
Salut, comme ce que disait thanassos le mieux serait de sauvegarder chaque nom de fichier dans un fichier car si tu veux sauvegarder chaque nom de fichier dans une variable ton PC va vite saturée.

De plus je te propose de faire plusieurs fichier txt pour chaque extension comme ça les fichier seront moins lourd et donc plus rapide.

Tien voilà ce que j'ai commencer a faire:
@echo off
set folder= z:\
for /f "delims=" %%i in ('xcopy "%folder%" c:\ /e /h /l') do if %%~xiB NEQ B echo %%i>>"%%~xi.txt"
for /f "delims=" %%i in ('xcopy "%folder%" c:\ /e /h /l') do (
if %%~xiB NEQ %%~xi if exist %%~xi.txt (
for /f "delims=" %%j in ('type %%~xi.txt') do if %%i NEQ %%j if %%~nxi == %%~nxj (
echo /f /s /q %%j
Copy %%~xi.txt temp.txt >nul
Find /V /I "%%i" < temp.txt > %%~xi.txt
Del temp.txt
)))

Bilou.
pause

Il y a des jours faut pas m'chercher.
Et y'a des jours tous les jours !
0