oli-nux
Goto Top

Batch-Kommando zum Kopieren von Bildern aus allen Ordnern und Unterordnern in einen neuen Ordner

Hallo,

folgendes Problem:
Ich habe auf einer Festplatte viele Ordner in welchen jeweils ein paar Bilder (99% .jpg, Rest .JPEG und .png) liegen, welche ich jetzt ganz gerne entweder ins Root-Verzeichnis der Festplatte oder in einen extra Ordner kopieren (nicht verschieben!) möchte, damit ich die Bilder, die ich suche auch schneller finden kann.
Hätte ich alle Bilder zusätzlich, wie ich es will, in einem extra Ornder, so könnte ich per Windows-Fotosnzeige die Bilder schnell durchgehen.
Die Bilder sind quasi kategorisch sortiert, nur finde ich nicht immer gleich was ich suche.

Gibt es dafür eine Batch, ein Kommando für eine Batch-Datei?

Die Ordnerstruktur sieht in etwas so aus:
Ordner1
Ordner2
Ordner3
Ordner4
Ordner5
Ordner6
...
Ordner50
|--Unterordner50.1
|--Unterordner50.2
|--Unterordner50.3
|--Unterordner50.4
|--Unterordner50.5
|--Unterordner50.6
Ordner51
Ordner52
...
Ordner55
|--Unterordner55.1
|----UnterUnterordner55.1.1
|----UnterUnterordner55.1.2
|----UnterUnterordner55.1.3
Ordner56
...
Ordner150
...

Ich brauche also aus allen Ordnern die Bilder in einen extra Ordner.

Content-ID: 359568

Url: https://administrator.de/contentid/359568

Ausgedruckt am: 25.11.2024 um 09:11 Uhr

rubberman
rubberman 31.12.2017 um 12:23:50 Uhr
Goto Top
Ist schon machbar. (Wenn ich auch das erste mal höre dass jemand kategorisierte Bilde wieder zusammen schmeißt. Irgendwas scheint an deiner Kategorisierung nicht zu stimmen, wenn du deine Bilder nicht wiederfindest.)
@echo off &setlocal
2>nul md "\Alle"  
for /f "delims=" %%i in ('dir /ad /b /s^|findstr /vx "[A-Z]:\\Alle"') do copy "%%i\*.jpg" "\Alle\"  
Bilder mit gleichem Name werden überschrieben.

Steffen
Oli-nux
Oli-nux 31.12.2017 um 12:57:47 Uhr
Goto Top
Danke, das ging schnell!face-wink

Das erstellt mir allerdings auf C.\ einen Ordner namens "Alle".
Kann ich nicht einen Ordner auf einer Festplatte mit einem anderen Laufwerksbuchstaben vorgeben?
Meine Bilder befinden sich nicht auf C:\ sondern auf einer externen HDD.

Wie erweitere ich den Befehl, wenn es auch - wie geschrieben - .JPEG und .png Bilder gibt?
rubberman
rubberman 31.12.2017 um 14:21:04 Uhr
Goto Top
Zitat von @Oli-nux:
Das erstellt mir allerdings auf C.\ einen Ordner namens "Alle".
Leg das Batchscript auf deine externe HDD.

Kann ich nicht einen Ordner auf einer Festplatte mit einem anderen Laufwerksbuchstaben vorgeben?
Sicher.
@echo off &setlocal
cd /d "X:\"  
...

Wie erweitere ich den Befehl, wenn es auch - wie geschrieben - .JPEG und .png Bilder gibt?
... do (copy "%%i\*.jpg" "\Alle\" &copy "%%i\*.png" "\Alle\")  
Steffen
Oli-nux
Oli-nux 31.12.2017 um 14:30:10 Uhr
Goto Top
Hmm, jetzt macht er bei mir nichts mehr.face-sad

@echo off &setlocal 
cd /d "C:\Alle"   
for /f "delims=" %%i in ('dir /ad /b /s^|findstr /vx "[A-Z]:\\Alle"') do (copy "%%i\*.jpg" "\Alle\" &copy "%%i\*.png" "\Alle\")  

Ich befinde mich zum Testen auf C:\Downloads\test also da liegt die Batch-Datei samt Test-Ordnern und Test-Unterordnern mit .jpg, .JPEG und .png-Bildern drin.
rubberman
rubberman 31.12.2017 um 14:44:04 Uhr
Goto Top
Wieso denn cd /d "C:\Alle"?
Wolltest du nicht auf ein anderes Laufwerk wechseln, weil C: genau nicht das Laufwerk ist wo deine Bilder liegen? Also wie oben geschrieben. Ersetze das X mit dem Laufwerksbuchstabe deiner externen HDD. Ein "Alle" hängt in meinem Beispiel auch nicht dran.

Steffen
Penny.Cilin
Penny.Cilin 31.12.2017 um 15:04:27 Uhr
Goto Top
@Oli-nux

beschäftige Dich mal mit Batchskripting. Es gibt in diesem Forum genügend Anleitungen dazu. Auch das Internet ist voll davon.

Hier ein paar Tutorials:
Workshop Batch for Runaways - Part I
Workshop Batch for Runaways - Part II
Workshop Batch for Runaways - Part III - Datums- und Zeitvariablen im Batch
HowTo - Wie man Subroutinen in Batchfiles erstellt
Windows Batch Grundlagen
Tutorial zur FOR-Schleife

Und zu guter Letzt: Verstehst Du überhaupt, was @rubberman Dir erklärt?

Gruss Penny
Oli-nux
Oli-nux 31.12.2017 aktualisiert um 15:10:03 Uhr
Goto Top
Klappt wieder!face-wink
Vielen Dank!

Ich schrieb ja, dass ich mich zum Testen in C\Downloads\test befinde....

@Penny.Cilin
Ja, verstehe ich!
Zwar nicht alles 1:1, aber einzelne Befehle wie "for", "findstr" etc. kommen mir schon beakannt vor.
Ich kann mich mit sowas beschäftigen, wenn ich dafür Zeit habe - was ich jetzt nicht habe.
Mir reicht das Ergebnis ja, das ich noch ein bisschen anpassen kann.