BATCH Crée une exception pour une copie [Résolu/Fermé]

Signaler
Messages postés
107
Date d'inscription
mercredi 30 août 2017
Statut
Membre
Dernière intervention
12 octobre 2017
-
Messages postés
12705
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 septembre 2020
-
Salut à tous, j'avais déjà posé une question sur le batch que l'on avait gentiment résolu, mais comme un problème ne vient jamais seul voilà le nouveau :
J'aimerais pouvoir exclure un sous-dossier qui est contenu dans le dossier copié.
Par exemple : copier le dossier "one" mais ne pas copier le sous-dossier "second" qui est situé dans le "one". De plus, j'aimerais que le script s'adapte au fait que le dossier "one" ai un nom qui puisse varier (mais il contiendra toujours le sous dossier à exclure "second").
J'espère que je me suis bien exprimé mais n'hésitez pas à me poser des questions si je n'ai pas été clair et surtout merci à tous ceux qui tenteront de m'aider c'est vraiment cool de votre part :)

2 réponses

Messages postés
12705
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 septembre 2020
3 603
Bonjour,

Exclure un sous-dossier est très facile avec la commande ROBOCOPY et le commutateur /XD

Concernant le nom du dossier "one" qui change, il faut donner plus d'explications.

Aussi, est-ce que le script est lancé manuellement ou automatiquement ?
Messages postés
107
Date d'inscription
mercredi 30 août 2017
Statut
Membre
Dernière intervention
12 octobre 2017
28
Salut, deja merci beaucoup de ta rapidité à me répondre et de ton aide.
Et en fait le dossier "one" peut avoir un autre nom que "one" mais il contiendra toujours le dossier que je souhaite exclure qui à lui pour nom fixe "second". Et pour répondre a ta question le script est lancé manuellement.
Messages postés
12705
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 septembre 2020
3 603
Ok essaie comme ceci :

@echo off

set destination=%USERPROFILE%\Desktop\ROBOCOP
set exclusion=second

if "A%~1A"=="AA" (exit /B 1)
if exist "%~1" (robocopy "%~1" "%destination%" /E /XD "%~1\%exclusion%")

pause
exit /B 0

Messages postés
12705
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 septembre 2020
3 603 >
Messages postés
107
Date d'inscription
mercredi 30 août 2017
Statut
Membre
Dernière intervention
12 octobre 2017

De rien ;)

Il y a un petit malentendu j'ai l'impression :

- tu me dis que le nom du dossier "one" peut varier, et que tu lances le script manuellement, j'ai donc fait ce que je pensais le plus pratique, c'est-à-dire la technique du glisser-déposer

- si tu ne veux pas de cette technique et que "one" est variable, il faut me donner plus de détails pour que le script puisse trouver le bon dossier
Messages postés
107
Date d'inscription
mercredi 30 août 2017
Statut
Membre
Dernière intervention
12 octobre 2017
28 >
Messages postés
12705
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 septembre 2020

Ok ça marche deja excuse moi de ne pas m'être correctement exprimer je vais tenter de faire le complet possible. En fait actuellement quand je clique sur mon batch il copie plein de dossier, l'un des dossiers (on va dire "one" pour s'y retrouver) contient un sous-dossier ("second") que je souhaite exclure lors du copiage, mais le nom du dossier ("one") qui contient le sous dossier ("second") peut avoir un nom variable. J'espère que j'ai bien expliqué et que ce n'est pas trop brouillon si tu à le moindre doute je réaliserais des petits screens pour bien illustrer :) (Merci).
Messages postés
12705
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 septembre 2020
3 603 >
Messages postés
107
Date d'inscription
mercredi 30 août 2017
Statut
Membre
Dernière intervention
12 octobre 2017

Je vais attendre les screens alors ;)
Messages postés
107
Date d'inscription
mercredi 30 août 2017
Statut
Membre
Dernière intervention
12 octobre 2017
28 >
Messages postés
12705
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 septembre 2020

Salut, bon ben en fait pas besoin des screens j'ai trouver la réponse sur un forum anglais, en gros il faut crée un document texte autre que le batch, ecrire le nom du fichier dedans comme ça : \nom_du_fichier\ et puis dans le batch terminer la commande xcopy par /EXCLUDE:nom_du_doc_texte.txt et le fichier ne sera pas copier pendant l’exécution du batch. Sinon je tiens vraiment à te remercier de m'avoir aider sans relâche j’espère que je pourrais te rendre la pareille une prochaine fois :)
Messages postés
12705
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 septembre 2020
3 603 >
Messages postés
107
Date d'inscription
mercredi 30 août 2017
Statut
Membre
Dernière intervention
12 octobre 2017

Ok, bonne continuation.

A bientôt peut-être.