[BATCH] Suppression de doublons de fichiers ? [Fermé]

Signaler
-
cs-bilou
Messages postés
771
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
24 février 2011
-
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


2 réponses

Messages postés
1763
Date d'inscription
lundi 19 février 2007
Statut
Contributeur
Dernière intervention
12 février 2016
127
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.
Messages postés
771
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
24 février 2011
153
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 !