CMD - Kopieren aus Unterordner

1stSlave

Lieutenant
Registriert
Juni 2007
Beiträge
926
Weiss jemand wie man speziefische Dateien (z.B. *.txt) aus allen Unterordner in ein anderes Verzeichnis kopieren kann?
Zum Beispiel alle mp3 von Musik und Unterordner nach E:\Backup\Music?
 
mokai schrieb:
Weiss jemand wie man speziefische Dateien (z.B. *.txt) aus allen Unterordner in ein anderes Verzeichnis kopieren kann?
Zum Beispiel alle mp3 von Musik und Unterordner nach E:\Backup\Music?

Wie ... alle Dateien?
Du meinst so alles was da auf deiner Kiste in irgendwelchen Ordnern rumliegt?
Möglichst auch noch aus verschiedenen Partitionen?
Das ist aber mit einem Einzeiler ein wenig schwierig. :rolleyes:

DOSe, Mac oder Linux?
 
Sorry. liegt alles auf einer Partition soll aber auf eine andere Partition kopiert werden. Das Ganze auf nem DOS-System (XP)
Und nur Dateien ohne Ordnerstruktur kopieren
 
Geht mit Total Commander. Erst alle Suchen lassen in einem bestimmten oder mehreren Ordnern. Und dann alle gefundenen verschieben/kopieren in den Zielordner.

Im übrigen ist das sonst auch der Weg mit dem Windows Explorer. Einfach Suche *.mp3 in Ordner \quelle\... dann alles Markieren mit STRG+A, dann kopieren und im Zielordner \ziel\... einfügen.
 
Dann geht es via der Suchfunktion unter XP doch auch.

/E

hmpf hatte ich doch schon oben beschrieben....
 
Hi,
Öffne im Notepad ne neue Datei. Dann schreib:

copy Laufwerk:\Quellordner\*.mp3 Laufwerk:\Zielordner

und speicher das ganze mit der Dateiendung .bat ab, dann kannst du es per Doppelklick ausführen.

MfG
 
@ pintness

Dann kopiert er aber nur aus dem einen Verzeichnis die Dateien und nicht rekursiv inkl. Unterordner... Oder doch?
 
Ne es kopiert eben nur die aus dem Ordner ohne die Dateien aus dem Unterordner und ja möchte das eben als Command haben (*.cmd Datei) da ich das Dinges dann kurz auf allen Rechner laufen lassen kann
 
Mit dem xcopy Befehl kopiert er aber auch die Ordnerstruktur in den Zielordner.

Das ist auch nicht Sinn der Sache.
 
Danke Suxxess,

das kopiert mir aber alles, will aber nur aus Laufwerk D:
 
Du brauchst eine Schleife, um die diversen Unterordner abzuklappern. Das geht in der CMD per FOR Befehl.

Hier meine Lösung:

FOR /F %i IN ('dir /ad /b /s D:\') DO copy %i\*.mp3 E:\Backup
 
Zuletzt bearbeitet:
Nicht vergessen bei meiner Lösung wenn du das in einer Batch ausführst aus dem %i ein %%i zu machen.
 
easy.2ci schrieb:
Du brauchst eine Schleife, um die diversen Unterordner abzuklappern. Das geht in der CMD per FOR Befehl.

Hier meine Lösung:
FOR /F %i IN ('dir /ad /b /s D:\') DO copy %i\*.mp3 E:\Backup

Ich denke das ist für Windows das beste.
Ansonsten hätte ich noch für Linux bzw. cygwin das hier anzubieten:
find -name "*.mp3" -exec cp {} /$MEIN_ZIELVZ \;
 
Meine Lösung hat Stress mit Leerzeichen in Verzeichnisnamen.

Beispiel: D:\Eigene Dateien\lala.mp3

Der dir Befehl in der FOR Schleife packt nur D:\Eigene in %i. Somit wird ein copy auf D:\Eigene\*.mp3 abgesetzt und das gibts natürlich nicht.


Wenn Leerzeichen in deinen Ordnernamen vorkommen, dann muss man die Schleife nochmal anpassen.
 
Das mit den Leerzeichen hab ich gerade bemerkt. Wie kann man das Prob lösen?
 
Zuletzt bearbeitet:
Hier die finale Lösung, kompatibel zu Leerzeichen:

FOR /F "delims=#" %i IN ('dir /ad /b /s D:\') DO @copy "%i\*.mp3" E:\Backup



Mit dem Parameter delims=# wird das Hash Symbol zum Trennzeichen gemacht, anstelle des Leerzeichens. Somit steht dann der komplette Pfad in %i.

Beim Copy Befehl mussten dann noch "" her, damit auch dieser mit Leerzeichen zurecht kommt.

Das @ vor dem copy sorgt für geringfügig übersichtlicheren Output.


Bei Verwendung in einer Batch Datei ist %i gegen %%i auszutauschen. Der Zielordner muss bereits vorhanden sein.
 
Zurück
Oben