Copier fichiers dans 1 répertoire (avecMSDOS)

Résolu/Fermé
Mich92 - 27 sept. 2008 à 20:48
 Mich92 - 20 janv. 2009 à 12:20
Bonjour à toutes et à tous,

Je souhaites Copier tous les fichiers contenus dans une arborescence dont le répertoire racine est "DossierSource" dans un autre répertoire appelé "DossierCible".

Exemple :
Voici mon arborescence :

DossierSource
---Fichier01
---Fichier02
---Répertoire1
------Fichier11
------Fichier12
---Répertoire2
------Fichier21
------Fichier22

Voici ce que je souhaite obtenir :

DossierCible
---Fichier01
---Fichier02
---Fichier11
---Fichier12
---Fichier21
---Fichier22

J'ai essayé la commande suivante :
COPY "C:\Documents and Settings\Michel\Bureau\DossierSource\*" "C:\Documents and Settings\Michel\Bureau\DossierCible" /s
mais voici ce que j'obtient :
DossierCible
---Fichier01
---Fichier02
---Répertoire1
------Fichier11
------Fichier12
---Répertoire2
------Fichier21
------Fichier22

Existe-t-il une commande simple qui permette de faire cela ?
Quelqu'un peut-il me répondre rapidement ?

Merci d'avance.
A voir également:

10 réponses

Cette fois cela marche à merveille !!
MERCI BEAUCOUP pour ton aide. Cela va m'être d'un très grande utilité.
2
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
4 oct. 2008 à 23:57
AVEC PLAISIR, bon courage, peut-être à bientôt sur CCM.
-1
Mich92 > cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012
20 janv. 2009 à 12:20
============= RESUME =============

Voici mon arborescence :

DossierSource
---Fichier01
---Fichier02
---Répertoire1
---------Répertoire2
------------Fichier121
------------Fichier122
---------Fichier11
---Répertoire2
------Fichier21
------Fichier22

Voici ce que je souhaite obtenir :

DossierCible
---Fichier01
---Fichier02
---Fichier121
---Fichier122
---Fichier11
---Fichier21
---Fichier22

Mon Programme (qui marche !) :

SETLOCAL ENABLEdelayedExpansion
SETLOCAL ENABLEextensions
CLS

rem DOSSIER CIBLE
SET "param_0=C:\Documents and Settings\Christian\Mes documents\b1\"

rem DOSSIER SOURCE (répertoire générique )
SET "param_1=C:\Documents and Settings\Christian\Mes documents\a1\"

rem Selection sur extension possible.
SET "param_2=*"

FOR /R "%param_1%" %%F IN (*.%param_2%) DO (
SET "nom_ext=%%~nxF"
rem Pour tracer en test ECHO !nom_ext!
SET "param_0=%param_0%!nom_ext!"
rem MOVE /Y "%%F" "!param_0!" )
COPY "%%F" /A "!param_0!" /A )

Fonctionnalités que j'aimerai ajouter :

dans le dossier cible : nom du fichier doit être = "(nom du dossier)" + " - " + "nom du fichier"

ex
DossierCible
---"Fichier01"
---"Fichier02"
---"(Répertoire1) - (Répertoire2) - Fichier121"
---"(Répertoire1) - (Répertoire2) - Fichier122"
---"(Répertoire2) - Fichier21"
---"(Répertoire2) - Fichier21"

Merci à celui qui me répondra.
(bjr à Cchristian ;) )
0
giheller,

Comment faire cela de façon générique sachant qu'en réalité l'arborescence est beaucoup plus importante (répertoires, sous-répertoires, sous-sous-répertoires,...) ?
0
De plus, l'arborescence est susceptible de bouger (suppressions/ajout de répertoires, suppression/ajout de sous-répertoires, suppression/ajout de fichiers,...) --> d'où l'idée de généricité.
0
De plus, l'arborescence est susceptible de bouger (ajout/suppression de répertoires, ajout/suppression de sous-répertoires, ajout/suppression de sous-sous-répertoires, ajout/suppression de fichiers,...) --> d'où l'idée de généricité.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Je vais essayer... Merci Cchristian !
0
J'ai lancé ce programme et cela marche très bien sur des fichiers textes. Cependant cela ne fonctionnent pas sur les images. En effet, les images sont copiées mais il n'est pas possible de les lire...
0
Utilisateur anonyme
28 sept. 2008 à 11:02
Bonjour,
vous lui demandez de tout copier alors il copie tout.
pour obtenir le résultat escompté il faut faire plusieurs commandes puisque vous ne souhaitez pas garder les répertoires.
-1
Utilisateur anonyme
29 sept. 2008 à 18:22
alors il faut utiliser autre chose que DOS
-1
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
30 sept. 2008 à 00:10
Bonsoir,

Essaie cela :

SETLOCAL ENABLEdelayedExpansion
SETLOCAL ENABLEextensions
        CLS

rem DOSSIER CIBLE
        SET "param_0=C:\Documents and Settings\Christian\Mes documents\b1\"

rem DOSSIER SOURCE (répertoire générique )
        SET "param_1=C:\Documents and Settings\Christian\Mes documents\a1\"

rem Selection sur extension possible.
        SET "param_2=*"

        FOR              /R   "%param_1%"   %%F  IN  (*.%param_2%) DO  (
              SET               "nom_ext=%%~nxF"
rem Pour tracer en test    ECHO  !nom_ext!
              SET "param_0=%param_0%!nom_ext!"
rem              MOVE  /Y    "%%F"     "!param_0!"                               )
              COPY   "%%F" /A "!param_0!"  /A                             )


NB. Les commandes :
              SET               "nom_ext=%%~nxF"
rem Pour tracer en test    ECHO  !nom_ext!
              SET "param_0=%param_0%!nom_ext!"

ne sont vraisemblablement pas nécessaires, elles permettent la récupération du nom et de l'extension du fichier à déplacer. Je crois me rappeler que la commande MOVE récupère ce nom s'il n'est pas spécifié dans le dossier cible. Je n'ai pas testé sans elles.

Par contre si c'est un COPY
              COPY   "%%F"  /A   "!param_0!"  /A                     )
que tu souhaites faire elles sont nécessaires :
-1
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
4 oct. 2008 à 14:49
Bonjour,

Pour des images essaie en remplaçant /A par /B. (B=Binaire)

COPY "%%F" /A "!param_0!" /A )

remplacé par

COPY "%%F" /B "!param_0!" /B )

Tu vas probablement devoir identifier les deux cas en ajoutant un test sur l'extension.


--------------------------------------------------------------------------------------------
P.S. Pour extraire l'extension :

SET "ext=%%~xF"
-1