gurkenhobel
Goto Top

Bestimmte Dateien aus Parallelordnern in einen Ordner verschieben

Hallo Helfer,
wiedereinmal stehe ich vor einem (für mich zumindest) unlösbaren Problem. Mit dem Batch-Befehl
MD ZUSAMMEN
for /r %%Z in ("1???? *.jpg" "2???? *.jpg" "3???? *.jpg" "4???? *.jpg") do move "%%Z" ZUSAMMEN /b /v    
for /r %%Z in ("1???? *.jpg" "2???? *.jpg" "3???? *.jpg" "4???? *.jpg") do (echo %%Z >> ZUSAMMEN\Liste.txt)  
kann ich wunderbar alle JPG-Dateien (5 Stellen Numerisch, 1 Leerzeichen, der Rest Alphanumerisch mit Leerzeichen) aus allen Unterordnern in den Ordnern ZUSAMMEN verschieben und den Quellordner auch protokollieren.

Wie bekomme ich das gleiche Ergebnis, wenn ich die Batchdatei aus einem Parallelordner aufrufe, also z.B. aus dem Ordner ZUSAMMEN. Mit "..\" geht es nicht, egal ob ich es vor die öffnende Klammer setze oder z.B.
"..\1???? *.jpg" 
benütze. Was kann man tun? Mit "dir /s /b ..\1???? *.jpg" funktioniert es ja auch.

Danke vorab vielmals.

Grüße GH

Content-Key: 192714

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

Printed on: April 19, 2024 at 19:04 o'clock

Mitglied: 60730
60730 Oct 13, 2012 updated at 10:01:02 (UTC)
Goto Top
Moin,

Kann ja sein, dass ich mich irre, aber das leerzeichen zwischen den ? Und der folgende * (vor dem .jpg). Das sieht fuer mich nicht so aus, als ob das wirklixh haarschrf das macht, was es laut beschreibung machen soll.

Anyways...
Schau mal, was pushd und popd koennen oder nutze einfach ein simples cd .. vormder schleife.

Wobei so ganz ist mir das ziel immer noch nicht..
Schreib das mal genauer auf.
Vielleicht liegts aber auch an minem kaffee

Gruss
Member: Gurkenhobel
Gurkenhobel Oct 13, 2012 at 10:54:29 (UTC)
Goto Top
Hi,
danke für den Tip. Kann aber mit pushd und popd momentan nix anfangen - die Windows-Konsolenhilfe bietet dazu keine Beispiele. Habe es erstmal so gelöst:
cd .. 
REM einen Ordner höher (vom Ordner TEST einen höher in der Hierarchie)
MD ZUSAMMEN ' also den Parallel-Ordner von TEST machen  
for /r %%Z in ("1???? *.jpg" "2???? *.jpg" "3???? *.jpg" "4???? *.jpg") do move "%%Z" ZUSAMMEN /b /v    
for /r %%Z in ("1???? *.jpg" "2???? *.jpg" "3???? *.jpg" "4???? *.jpg") do (echo %%Z >> ZUSAMMEN\Liste.txt)  
cd TEST ' von hier aus wurde das Batch gestartet  
Das mit dem Leerzeichen stimmt schon (deshalb auch die Gänsefüsel) und das Batch macht auch das was es soll
Dateinamen sind z.B.:
11056 Königshofen im Grabfeld.jpg
30087 Brandenburg an der Havel.jpg
49726 Au in der Hallertau.jpg
Groetjes GH
Member: bastla
bastla Oct 13, 2012 updated at 11:27:44 (UTC)
Goto Top
Hallo Gurkenhobel!

Du musst ja nicht der Schleife vorgeben, in welchem Ordner sie starten soll (was auch ginge - schau dir einmal die Hilfe zu "for /r" an), sondern einfach den Zielordner festlegen (auch mit relativem Pfad möglich) - gleich auf eine Schleife reduziert und für den Parallelordner) ungetestet etwa so:
for /r %%Z in ("1???? *.jpg" "2???? *.jpg" "3???? *.jpg" "4???? *.jpg") do (  
    move "%%Z" ..\ZUSAMMEN\  
    echo %%Z
)>>..\ZUSAMMEN\Liste.txt
Was wolltest Du übrigens mit "/b /v" erreichen?

Grüße
bastla
Member: Gurkenhobel
Gurkenhobel Oct 14, 2012 at 09:19:43 (UTC)
Goto Top
Schön Sonntag Bastla,
ja Dein Script ist kürzer. Aber das hinter dem DO die Befehle einzeilig in eine Klammer zu schreiben funktioniert so nicht. Habe daher mein vorheriges Script (Zeilen 4 und 5) um den übergeordneten Ordner ..\ erweitert.
Das /b /v ist wohl noch ein Überbleibsel, als ich aus Sicherheitsgründen COPY statt MOVE verwendete und vergaß diese Parameterangeben zu tilgen. MOVE kennt ja keinen Befehl um das korrekte Schreiben zu überprüfen.

Grüße
GH
Member: bastla
bastla Oct 14, 2012 updated at 12:20:43 (UTC)
Goto Top
Hallo Gurkenhobel!
Aber das hinter dem DO die Befehle einzeilig in eine Klammer zu schreiben funktioniert so nicht.
Dass Du Oneliner bevorzugst, war Deinem bisherigen Ansatz ja nicht zu entnehmen face-wink - aber bitte:
for /r %%Z in ("1???? *.jpg" "2???? *.jpg" "3???? *.jpg" "4???? *.jpg") do (move "%%Z" ..\ZUSAMMEN\ & echo %%Z)>>..\ZUSAMMEN\Liste.txt
Den Ordner "ZUSAMMEN" musst Du aber trotzdem vorweg erstellen ...

Grüße
bastla
Member: Gurkenhobel
Gurkenhobel Oct 14, 2012 at 13:17:22 (UTC)
Goto Top
Hallo bastla
Zitat von @bastla:
Dass Du Oneliner bevorzugst, war Deinem bisherigen Ansatz ja nicht zu entnehmen face-wink - aber bitte:
Nein, Da hast Du mich wohl etwas fehl verstanden oder ich habe mich unklar ausgedrückt. Oneliner bevorzuge ich nicht, aber Dein Code vom 13. sah doch ein bisserl komisch aus...
Nicht-Onliner sind eben doch übersichtlicher.
Trotzdem danke und tschüs
GH
Member: bastla
bastla Oct 14, 2012 at 18:51:21 (UTC)
Goto Top
Hallo Gurkenhobel!
Dein Code vom 13. sah doch ein bisserl komisch aus...
Nicht-Onliner sind eben doch übersichtlicher.
Nicht, dass ich Dir folgen könnte, aber was soll's ...

Grüße
bastla