Wie verwende ich dir und kopiere zusammen, um Verzeichnisse zu durchsuchen und in einen Ordner zu kopieren?

10

Ich muss einen angegebenen Ordner und seine Unterverzeichnisse nach Dateien durchsuchen und sie dann in einen bestimmten Ordner an einer anderen Stelle kopieren. Ist es möglich, dirund copymit einem Rohr zu verwenden?

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

Das obige funktioniert nicht. Die linke Seite der Pipe findet, was ich möchte, aber ich kann es nicht dazu bringen, die gefundenen Dateien zu kopieren. Ich verwende die Windows 7-Eingabeaufforderung.

Treibgut N. Jetsam
quelle
Welche Art von Datei benötigen Sie aus Neugier? Würde ein Platzhalter nicht ausreichen?
Dave
Ich muss die Platzhalter (??? - "?" Ist ein einstelliger Platzhalter) im Befehl verwenden, damit die oben genannten foo_42, foo_01 usw. erfassen und diese sich in verschiedenen Unterordnern befinden.
Treibgut N. Jetsam

Antworten:

10

Sie könnten einfach verwenden xcopy:

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

Dies wird die Verzeichnisstruktur enthalten.

Wenn Sie die Verzeichnisstruktur nicht möchten, können Sie Folgendes tun:

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

Wenn Sie dies in einer Batchdatei verwenden, sollten Sie Folgendes verdoppeln %:

for /r %%i in (foo???.txt) do xcopy /Y "%%i" g:\someplace
Rik
quelle
Eigentlich muss ich ein bisschen zwitschern. Kann es gemacht werden, ohne die Verzeichnisstruktur beizubehalten?
Treibgut N. Jetsam
Haha, davor hatte ich Angst :) (deshalb habe ich es ausdrücklich gesagt). Aber was würden Sie mit doppelten Dateinamen machen? Es kann nicht mit xcopy selbst gemacht werden, aber Sie könnten es tun, indem Sie etwas zum Robokopieren weiterleiten (oder vielleicht nur kopieren, aber in einer Batchdatei). Welche Windows-Version haben Sie?
Rik
Windows 7. Für meine Anwendung werden keine Duplikate angezeigt.
Treibgut N. Jetsam
Die Methode zum Kopieren in ein Verzeichnis wurde hinzugefügt. Zum Glück keine Robokopie nötig. Einfach benutzen for /r.
Rik
1
Du rockst. Ich wünschte, ich könnte dich wieder unterstützen. Vielen Dank!
Treibgut N. Jetsam