Batch-Datei zum kopieren von Dateien gesucht

Hallo zusammen,

ich stehe vor einer ätzenden Aufgabe. Ich möchte alle .jpg-Dateien, die sich einem bestimmten Ordner bzw. Unterordnern befinden in einen einzigen Ordner kopieren. Sollte eine Datei doppelt vorkommen einfach überschreiben.

Mit VBA könnte ich das vielleicht noch realisieren, aber ich habe daheim kein Programm auf meinem Rechner installiert mit dem ich VBA laufen lassen könnte. Mir kam deshalb die Idee, dass man das mit einer Batch-Datei ganz einfach lösen kann.
Mein Problem:
Ich habe keinen Plan von MS-DOS. Wie man eine bestimmte Datei von A nach B kopiert weiß ich. Die Prüfung, ob es sich um eine .jpg-Datei handelt würde ich sicher auch noch hinbekommen. Allerdings weiß ich nicht wie man in DOS Ordner/Unterordner mit einer Schleife abgrast.

Kann mir jemand von Euch weiterhelfen?

Vielen Dank.

MfG
Stephan

Hallo Stephan,
sicher lässt sich irgendein Batch-File für diese Aufgabe schreiben. Aber Du kannst dir diese Arbeit ersparen, indem Du Irfan benutzt.
http://www.irfanview.de/
Dort gibt es einen Menupunkt „Batch/Stapel Konvertierung“, der das für dich leistet. Du wählst den Punkt „Batch-Umbennen“ an, als Muster fürs Umbenennen $N (=alter Name, d.h. nichts wird umbenannt) und trägst dein Zielverzeichnis ein. Bei Suchen dein oberstes Verzeichnis, in dem sich die jpg-Dateien befinden, ein Häkchen bei der Option „inklusive Unterverzeichnisse“, Dateiname *.jpg, „Verschiebe ins Zielverzeichnis“, dann noch „überschreibe existierende Dateien“, ein beherzter Klick auf „Start“ und los gehts.
Hört sich kompliziert an, ist es aber nicht.
http://www7.pic-upload.de/24.06.11/e162e7r5fxm1.jpg

Viele Grüße
Marvin

Hallo!
Wenn Du VBA kannst, wäre in Deinem Fall der Weg zu VBS recht kurz.
Und damit ist das Zusammenkopieren ein Kinderspiel.
VBS-Interpreter kommen mit jedem Windows von Haus aus mit, Du brauchst also nichts Zusätzliches.

Gruß,
Martin

Hallo zusammen,

ich stehe vor einer ätzenden Aufgabe. Ich möchte alle
.jpg-Dateien, die sich einem bestimmten Ordner bzw.
Unterordnern befinden in einen einzigen Ordner kopieren.
Sollte eine Datei doppelt vorkommen einfach überschreiben.

geh ich in den unterordner nehme die windows suche .
z.b. *.jpg

warte bis fertig ,
alle markieren und kopieren .
dann neuer ordner einfügen.

ich stehe vor einer ätzenden Aufgabe. Ich möchte alle
.jpg-Dateien, die sich einem bestimmten Ordner bzw.
Unterordnern befinden in einen einzigen Ordner kopieren.
Sollte eine Datei doppelt vorkommen einfach überschreiben.

Hallo Stephan,

vielleicht so bei WinXP über Start—Ausführen

xcopy c:\ordner1\ordner2*jpg /s c:\neuerordner

Wenn das nicht geht dann so

cmd /c xcopy c:\ordner1\ordner2*jpg /s c:\neuerordner

Probleme kann es geben wenn du in Ordnernamen Leerzeichen hast dann mußt du mit Gänsefüßchen „arbeiten“.

Treten Probleme auf wegen dem Überschreiben also daß du laufend was bestätigen mußt dann meld dich nochmal, kann man auch abstellen.

Gruß
Reinhard

Hallo Martin,

Wenn Du VBA kannst, wäre in Deinem Fall der Weg zu VBS recht
kurz.
Und damit ist das Zusammenkopieren ein Kinderspiel.
VBS-Interpreter kommen mit jedem Windows von Haus aus mit, Du
brauchst also nichts Zusätzliches.

das wußte ich gar nicht. Ich habe auf nem anderen Rechner mal ne Lösung mit VBA programmiert. Mal sehen ob ich das ohne Probleme nach VBS bekomme.

MfG
Stephan

geh ich in den unterordner nehme die windows suche .
z.b. *.jpg

warte bis fertig ,
alle markieren und kopieren .
dann neuer ordner einfügen.

Super Idee, da einfach und flexibel. Top!

Hallo Reinhard,

xcopy c:\ordner1\ordner2*jpg /s c:\neuerordner

Wenn das nicht geht dann so

cmd /c xcopy c:\ordner1\ordner2*jpg /s c:\neuerordner

wenn ich einen Code nicht vollständig verstehe, führe ich ihn besser nicht aus. Kannst du Deinen Code bitte etwas erläutern? Werden damit auch alle Unterordner von „c:\ordner1“ durchlaufen, oder funktioniert das nur für „c:\ordner1\ordner2“?

MfG
Stephan

Hallo!
Ich antworte mal für Reinhard:
xcopy ist ein Standard-Programm für einfache Kopieraufgaben unter Windows.
In einer Eingabeaufforderung mit „/?“ als Parameter aufgerufen, siehst Du alle Argumente, die das Programm versteht.
Wie von Reinhard angegeben bewirkt der Schalter „/s“, dass das Kopieren inklusive Unterverzeichnisse erfolgen soll.
Problem dabei ist nur, dass xcopy die gleiche Verzeichnisstruktur erzeugt wie im Original, es also nicht dazu geeignet ist, aus verschiedenen Quellverzeichnissen in ein gemeinsames Zielverzeichnis zu kopieren.

Gruß,
Martin

Hallo Martin,

Wie von Reinhard angegeben bewirkt der Schalter „/s“, dass das
Kopieren inklusive Unterverzeichnisse erfolgen soll.
Problem dabei ist nur, dass xcopy die gleiche
Verzeichnisstruktur erzeugt wie im Original, es also nicht
dazu geeignet ist, aus verschiedenen Quellverzeichnissen in
ein gemeinsames Zielverzeichnis zu kopieren.

ist der Vorschlag von Reinhard nur ein unvollständiger Ansatz, oder kann ich mein Vorhaben mit DOS gar nicht umsetzen?

MfG
Stephan

Hallo nochmal!
xcopy hat keinen Schalter, der unterdrückt, dass die gleiche Verzeichnisstruktur wie in der Quelle auch im Ziel erstellt wird, insofern ist der Vorschlag von Reinhard leider nicht brauchbar.
Auch beim (zumindest unter Win7 standardmäßig vorhandenen) robocopy gibt es m.W. nach keine solche Option.

Also entweder wie geschildert per Windows-Suche und Copy/Paste manuell oder ein eigenes kleines Skript schreiben, das Dir das abnimmt.

Gruß,
Martin

Hallo,

der Beitrag ist zwar jetzt shcon reichlich alt, aber folgende beiden Zeilen sollten doch funktionieren:

dir /b /s | find /i „.jpg“ > Fundstellen.txt
for /f %%i in (Fundstellen.txt) do copy "%%i"

Quell- und Zielverzeichnis sind natürlich ohne einzufügen, aber uU mit Anführungszeichen (falls Leerzeichen in den Ordnernamen auftauchen).
In nem Kurztest hat es funktioniert. Mit „copy /Y“ werden Nachfragen zum Überschreiben unterdrückt.

Gruß Tuxifant