Batch, Dateien verschieben - Ordner löschen
Hallo und Grüsse aus dem hohen Norden,
leider hab ich so lange an der 1. Ausführung meines Problems geschrieben, das ich abgemeldet wurde und der gesamte Artikel futsch ist.
Also, Auf ein neues! Ich habe folgendes Problem:
Ich habe ein Bilderarchiv welches an der Zeit wäre zu sortieren bzw. neu zu strukturieren. Leider gibt es hierbei einige Komplikationen:
Ersteimal ein Überblick in die Ordnerhierachie:
1.Ebene - Ein Gesamtordner, der in der ...
2.Ebene - ...sehr viele Unterordner mit unterschiedlichen Namen enthält, der widerum in der...
3.Ebene - ...jeweils einen Ordner Namens "pics" enthält, wo die Bilder enthalten sind.
Bsp:
"Bildarchiv\656i\pics\67.jpg"
.
.
"Bildarchiv\012\pics\56.jpg"
Ich möchte die Bilder in den übergeordneten Ordner verschieben und den nun leeren pics Ordner löschen.
Bsp:
"Bildarchiv\656i\67.jpg"
.
.
"Bildarchiv\012\56.jpg"
Ich habe eine kleine Batch geschrieben, die aber mein Problem nicht vollständig abdeckt, da Sie in jeden "pics" Ordner per Hand zu kopieren wäre, anschliessend auszuführen wäre und es dadurch nicht wirklich eine Zeitersparniss wäre:
[copy.bat]
move *.jpg ..\
Wie gesagt es ist nur ein rudimentärer Ansatz zur Lösung dieses Problems.
Meine Lösung wäre es eine Batch zu schreiben, die die "copy.bat" in jedes "pics" Verzeichnis kopieren würde, diese dort ausführen lässt und anschliessend den Ordner "pics" löscht.
Aber der Kasus Knacktus ist für mich der, das die Ordner der 2. Ebene verschiedene (fast zufällige) Namen haben (Bsp. "45i","064v", usw.) und ich dadurch auch nicht in der Lage bin, auf Grund meiner beschränkten Batch Kenntniss, die Batchdatei für jeden Ordner in die 3.Ebene zu kopieren.
Ich habe auch folgenden Artikel studiert, konnte aber wegen nur Grundlegender Batchkenntniss keine Lösung zu diesem Problem ableiten:
Ordnerstruktur auflösen, neue erstellen, Dateien verschieben
Wenn Ihr ein solches Problem schon einmal gelöst habt, es einfach wisst oder Lust am Kniffligem habt, dann zögert bitte nicht, diesen für mich Gordischen Knoten aufzulösen.
Mein Dank ist euch in jedem Fall Gewiss.
MfG
Commodore
leider hab ich so lange an der 1. Ausführung meines Problems geschrieben, das ich abgemeldet wurde und der gesamte Artikel futsch ist.
Also, Auf ein neues! Ich habe folgendes Problem:
Ich habe ein Bilderarchiv welches an der Zeit wäre zu sortieren bzw. neu zu strukturieren. Leider gibt es hierbei einige Komplikationen:
Ersteimal ein Überblick in die Ordnerhierachie:
1.Ebene - Ein Gesamtordner, der in der ...
2.Ebene - ...sehr viele Unterordner mit unterschiedlichen Namen enthält, der widerum in der...
3.Ebene - ...jeweils einen Ordner Namens "pics" enthält, wo die Bilder enthalten sind.
Bsp:
"Bildarchiv\656i\pics\67.jpg"
.
.
"Bildarchiv\012\pics\56.jpg"
Ich möchte die Bilder in den übergeordneten Ordner verschieben und den nun leeren pics Ordner löschen.
Bsp:
"Bildarchiv\656i\67.jpg"
.
.
"Bildarchiv\012\56.jpg"
Ich habe eine kleine Batch geschrieben, die aber mein Problem nicht vollständig abdeckt, da Sie in jeden "pics" Ordner per Hand zu kopieren wäre, anschliessend auszuführen wäre und es dadurch nicht wirklich eine Zeitersparniss wäre:
[copy.bat]
move *.jpg ..\
Wie gesagt es ist nur ein rudimentärer Ansatz zur Lösung dieses Problems.
Meine Lösung wäre es eine Batch zu schreiben, die die "copy.bat" in jedes "pics" Verzeichnis kopieren würde, diese dort ausführen lässt und anschliessend den Ordner "pics" löscht.
Aber der Kasus Knacktus ist für mich der, das die Ordner der 2. Ebene verschiedene (fast zufällige) Namen haben (Bsp. "45i","064v", usw.) und ich dadurch auch nicht in der Lage bin, auf Grund meiner beschränkten Batch Kenntniss, die Batchdatei für jeden Ordner in die 3.Ebene zu kopieren.
Ich habe auch folgenden Artikel studiert, konnte aber wegen nur Grundlegender Batchkenntniss keine Lösung zu diesem Problem ableiten:
Ordnerstruktur auflösen, neue erstellen, Dateien verschieben
Wenn Ihr ein solches Problem schon einmal gelöst habt, es einfach wisst oder Lust am Kniffligem habt, dann zögert bitte nicht, diesen für mich Gordischen Knoten aufzulösen.
Mein Dank ist euch in jedem Fall Gewiss.
MfG
Commodore
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 95949
Url: https://administrator.de/contentid/95949
Ausgedruckt am: 25.11.2024 um 11:11 Uhr
5 Kommentare
Neuester Kommentar
Moin Commodore,
wenn es eine einmalige Aktion ist, verzichte auf einen Batch und feuere folgendes vom CMD-Prompt ab:
Die Anführungszeichen nur für den Fall, dass einzelne *.jpg's oder "x:\deinpfad\" Leerzeichen enthalten.
Für einen gefahrlosen Probedurchlauf "@move" durch "@echo move" ersetzen.
Grüße
Biber
wenn es eine einmalige Aktion ist, verzichte auf einen Batch und feuere folgendes vom CMD-Prompt ab:
for /d %i in (x:\deinpfad\bildarchiv\*) do @move "%i\pics\*.jpg" "%i\" & rd "%i\pics"
Die Anführungszeichen nur für den Fall, dass einzelne *.jpg's oder "x:\deinpfad\" Leerzeichen enthalten.
Für einen gefahrlosen Probedurchlauf "@move" durch "@echo move" ersetzen.
Grüße
Biber
Moin Commodore,
Siehe in der Hilfe zu FOR-> For/? am CMD-Prompt.
"@" vor einem CMD-Befehl unterdrückt das "echo". Unwichtig.
Grüße
Biber
%i ist der Platzhalter (wie in C z.B. für float-variablen);
Jein... %a, %b, %c... etc sind die dokumentierten Platzhalter für "dynamische" Laufzeitvariablen, die nur innerhalb einer FOR-Anweisung existieren. Mit zwei Prozentzeichen -also %%a, %%b, %%c.... werden diese im Batch geschrieben.Siehe in der Hilfe zu FOR-> For/? am CMD-Prompt.
in der for-in-do Schleife ist "*" das Jokerzeichen für den Match-Code.
Jepp.Bloß was ist das "/d" nach der for-Schleife und warum das "@"-Zeichen vor dem "move"?
For /D --> auf Directories bezogen. Siehe For /?"@" vor einem CMD-Befehl unterdrückt das "echo". Unwichtig.
Grüße
Biber