XCOPY /EXCLUDE

[Résolu/Fermé]
Signaler
Messages postés
109
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
6 février 2020
-
Messages postés
109
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
6 février 2020
-
Bonjour,

J'utilise ce batch pour copier tous les fichiers *.tif des répertoires voisins dans TIF_RESTO. Le problème, c'est que je n'arrive pas exclure répertoire cible de la copie.
if not exist TIF_RESTO mkdir TIF_RESTO
FOR /R %%f IN (*.tif) DO XCOPY /s/Y "%%f" TIF_RESTO

Après avoir lu quelques posts j'ai fais un essai avec EXCLUDE mais sans résultat.
Même en avec un chemin absolu, ce qui semble indispensable.

echo \TIF_RESTO\ > c:temp\exclusion.txt
FOR /R %%f IN (*.tif) DO xcopy /s/Y "%%f" TIF_RESTO /EXCLUDE:c:temp\exclusion.txt
del c:temp\exclusion.txt


Autres essais sans plus de succès :
FOR /R %%f IN (*.tif) IF %%f NEQ TIF_RESTO DO XCOPY "%%f" TIF_RESTO
FOR /R %%f IN (*.tif) IF NOT %%f==TIF_RESTO DO XCOPY "%%f" TIF_RESTO

Je ne suis même pas sûre que ces syntaxes soit bonnes...

Lo.
A voir également:

3 réponses

Messages postés
18257
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 septembre 2021
5 365
hello
et sans xcopy ?
if not exist TIF_RESTO mkdir TIF_RESTO
FOR /F "delims=" %%f IN ('dir /b/s *.tif ^| find /v "TIF_RESTO" ') DO copy /Y "%%f" TIF_RESTO
Messages postés
109
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
6 février 2020

Merci dudcek,

Petite subtilité.
Au lieu d'avoir une énumération indéfinie:
        1 fichier(s) copié(s).
1 fichier(s) copié(s).
1 fichier(s) copié(s).
1 fichier(s) copié(s).
Appuyez sur une touche pour continuer...

Peut-on avoir la liste des fichiers copiés ?
Et un compte final: X fichier(s) copié(s).

Lo.
Messages postés
18257
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 septembre 2021
5 365
essayer
@echo off
setlocal enabledelayedexpansion
set c=0
for /f "delims=" %%a in ('dir /b/s *.tif ^| find /i /v "TIF_RESTO" ') do (
echo copie de %%a
copy /y "%%a" TIF_RESTO
set /a c+=1
)
echo !c! fichiers copies
Messages postés
109
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
6 février 2020

Merci !

J'ai fait une petite modif pour ne garder que le nom du fichier copié sans son chemin.
	echo copie de %%~nxa

Lo.
Messages postés
109
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
6 février 2020

Bonjour,

Je marque ce post comme résolu.

Ceci dit, si quelqu'un à la solution avec XCOPY,
c'est toujours intéressent de la connaitre aussi...

Merci.

Lo.
Messages postés
18257
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 septembre 2021
5 365
FOR /R %%f IN (*.tif) DO XCOPY /s/Y "%%f" TIF_RESTO

for /r liste tout les fichiers, donc xcopy /s n'a pas de sens puisque /s parcourt l'arborescense, mais xcopy tout seul refuse les mélanges source-destination, même avec exclude
C:> xcopy *.tif TIF_RESTO /s/exclude:excl
Impossible de réaliser une copie cyclique
0 fichier(s) copié(s)
C:> type excl
TIF_RESTO\

ou pour utiliser le exclude de xcopy
C:> for /R %a in (*.tif) do @xcopy  "%a" TIF_RESTO /Y/exclude:excl
C:> type excl
TIF_RESTO\

mais il affiche x fois 0 fichier(s) copié(s)
Messages postés
109
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
6 février 2020
>
Messages postés
18257
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 septembre 2021

Merci beaucoup pour ces précisions.
Cette fois-ci, je crois que le sujet est clos.

Bonne soirée.

Lo.