Je suis arrivé à une réponse alternative fonctionnelle à votre question.
Tout d'abord, en utilisant FORFILES
con /S
confère que chaque sous-répertoire dans le répertoire C:\test
sera atteint.
Deuxièmement, avec /C
il est possible de démarrer une chaîne de commandes avec des variables natives, ce qui permet de créer des répertoires identiques à la destination, puis de copier les fichiers à l'intérieur de ceux-ci, en utilisant deux structures conditionnelles.
La première structure conditionnelle @isdir==TRUE
(veillez à utiliser des lettres majuscules), permet de récupérer les répertoires uniquement à partir de la source, puis de les créer à la destinée avec MKDIR [path]\@relpath
à la fin.
Enfin, la seconde s'assure que l'on travaille avec des fichiers uniquement avec @isdir==FALSE
et la commande COPY se contente de faire le travail, en récupérant tous les fichiers atteints par la commande FORFILES, en définissant les paramètres suivants [path]@relpath
comme destination, pour copier les fichiers à l'intérieur des répertoires qui viennent d'être créés.
forfiles /s /c " cmd /c ( if @isdir==TRUE mkdir C:\test\@relpath ) && ( if @isdir==FALSE copy @file C:\test2\@relpath)"
J'espère que ça aidera tout le monde ici.