Tester et supprimer des fichiers dans différents répertoires
Posté : 08 août 2011 20:33
Bonjour,
Je tente de développer un batch qui compare le contenu de deux répertoires différents et qui supprime les fichiers du premier répertoire (source) s'ils se trouvent dans l'autre répertoire (archive).
Pour les essais, j'ai créé sur mon disque 1 répertoire "source" qui contient 2 fichiers (test1.txt et test2.txt) et un répertoire "archive" qui contient 1 fichier (test1.txt)
Le code que j'utilise est le suivant :
REM initialisation de variables
setlocal enabledelayedexpansion
setlocal enableextensions
REM boucle de suppression
FOR /R c:\test\source\%%a IN (*) DO if exist c:\test\archive\%%a del c:\test\source\%%a
Le problème c'est que la variable %%a stocke le chemin complet d'accès aux fichiers du répertoire source (c:\test\source\test1.txt et c:\test\source\test2.txt).
La commande "if exist" ne permet pas de les retrouver puisqu'elle cherche dans "c:\test\archive" un fichier qui se nommerait "c:\test\source\test1.txt" et un autre qui se nommerait "c:\test\source\test2.txt".
Est il possible de n'attribuer à la variable %%a que le nom des fichiers contenus dans le répertoire source (test1.txt et test2.txt sans référence au chemin d'accès) ?
Merci pour votre aide.
Je tente de développer un batch qui compare le contenu de deux répertoires différents et qui supprime les fichiers du premier répertoire (source) s'ils se trouvent dans l'autre répertoire (archive).
Pour les essais, j'ai créé sur mon disque 1 répertoire "source" qui contient 2 fichiers (test1.txt et test2.txt) et un répertoire "archive" qui contient 1 fichier (test1.txt)
Le code que j'utilise est le suivant :
REM initialisation de variables
setlocal enabledelayedexpansion
setlocal enableextensions
REM boucle de suppression
FOR /R c:\test\source\%%a IN (*) DO if exist c:\test\archive\%%a del c:\test\source\%%a
Le problème c'est que la variable %%a stocke le chemin complet d'accès aux fichiers du répertoire source (c:\test\source\test1.txt et c:\test\source\test2.txt).
La commande "if exist" ne permet pas de les retrouver puisqu'elle cherche dans "c:\test\archive" un fichier qui se nommerait "c:\test\source\test1.txt" et un autre qui se nommerait "c:\test\source\test2.txt".
Est il possible de n'attribuer à la variable %%a que le nom des fichiers contenus dans le répertoire source (test1.txt et test2.txt sans référence au chemin d'accès) ?
Merci pour votre aide.