Comment utiliser dir et copier ensemble pour rechercher des répertoires et copier dans un dossier?


10

Je dois rechercher un dossier spécifié et ses sous-répertoires pour les fichiers, puis les copier dans un dossier spécifié ailleurs. Est-il possible d'utiliser diret copyavec une pipe?

dir /s foo???.txt | copy g:\someplace

Ce qui précède ne fonctionne pas. Le côté gauche de la pipe trouve ce que je veux, mais je n'arrive pas à copier les fichiers trouvés. J'utilise l'invite de commande de Windows 7.


De quel type de dossier avez-vous besoin par curiosité? Un caractère générique ne suffirait-il pas?
— Dave

J'ai besoin d'utiliser les caractères génériques (??? - "?" Est un caractère générique à un chiffre) dans la commande de telle sorte que ce qui précède capturerait foo_42, foo_01, etc. et ceux-ci seraient dans divers sous-dossiers.
— Flotsam N. Jetsam du

Réponses:


10

Vous pouvez simplement utiliser xcopy:

xcopy /s foo???.txt g:\someplace

Cela contiendra la structure du répertoire.

Si vous ne voulez pas la structure du répertoire, vous pouvez procéder comme suit:

for /r %i in (foo???.txt) do xcopy /Y "%i" g:\someplace

Si vous l'utilisez dans un fichier batch, vous devez doubler %comme ceci:

for /r %%i in (foo???.txt) do xcopy /Y "%%i" g:\someplace

En fait, je dois le tweeter un peu. Peut-on le faire sans conserver la structure du répertoire?
— Flotsam N. Jetsam

Haha, c'est ce dont j'avais peur :) (c'est pourquoi je l'ai dit spécifiquement). Mais que feriez-vous avec des noms de fichiers en double? Cela ne peut pas être fait avec xcopy lui-même, mais vous pouvez le faire en canalisant quelque chose pour robocopy (ou peut-être simplement copier mais dans un fichier batch). Quelle version de Windows possédez-vous?
— Rik

Windows 7. Il n'y aura pas de doublons pour mon application.
— Flotsam N. Jetsam

Ajout de la méthode de copie dans un répertoire. Heureusement, pas besoin de robocopie. Utilisez simplement for /r.
— Rik

1
Tu gères. J'aimerais pouvoir te voter à nouveau. Merci!
— Flotsam N. Jetsam
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.