baumberger
Goto Top

Wie kann ich mit einer Batch Datei Bilder, sotiert nach Datum, in verschiedene Ordner verschieben ?

Ich habe 4 Grafikbilder mit Namen, Datum und Zeit :

Bodenanalyse-NA-271200.png 27.12.2010 17:25:00
Bodenanalyse-NA-280000.png 28.12.2010 04:46:00
Bodenanalyse-NA-281200.png 28.12.2010 17:21:00
Bodenanalyse-NA-290000.png 29.12.2010 04:46:00

sollen in 4 Ordner verschoben werden

Die Grafik mit dem neustem Datum soll immer im Ordner 1
Die Grafik mit dem vorletzten Datum im Ordner 2
Die Grafik mit dem vorvorletzten Datum im Ordner 3

usw.

Wie kann ich das mit einer Bat – Datei umsetzten.

Danke für eure Hilfe.


Gruß

Heinz
Kommentar vom Moderator Biber am Dec 30, 2010 um 22:14:12 Uhr
Ich setze es mal auf "hinreichend beantwortet".

Content-Key: 157729

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

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

Member: bastla
bastla Dec 29, 2010 at 19:08:21 (UTC)
Goto Top
Hallo Baumberger!

Falls ich das richtig verstanden habe, könnte es (ungetestet) so gehen:
@echo off & setlocal
set "Ordner1=D:\Neueste"  
set "Ordner2=D:\Nicht ganz neu"  
set "Ordner3=D:\Gar nicht neu"  
set "Ordner4=D:\Alt"  

for /f "tokens=1* delims=:" %%i in ('dir /b /o-d Bodenanalyse-NA*.png^|findstr /n "^"') do if defined Ordner%%i call echo move "%%j" "%%Ordner%%i%%\"  
pause
Das "echo" vor dem "move" soll ein gefahrloses Testen ermöglichen - solange es da steht, wird der Verschiebebefehl nur angezeigt, aber nicht ausgeführt ...

Grüße
bastla

P.S.: Dass die Zielordner bereits existieren, habe ich einfach mal vorausgesetzt ...
Member: pieh-ejdsch
pieh-ejdsch Dec 29, 2010 at 21:18:13 (UTC)
Goto Top
moin Bastla,

[Edit] nicht genau hingeschaut[/Edit]
es wird Zeit für den Jahreswechsel.

Gruß Phil
Member: bastla
bastla Dec 29, 2010 at 21:35:41 (UTC)
Goto Top
[OT]
@ph
Never mind - "call echo move" habe ich hier auch das erste Mal - zumindest von mir face-wink - gesehen ...

Vorsorglich jedenfalls schon mal alles Gute für 2011 (und danach) face-smile
bastla
[/OT]
Member: Baumberger
Baumberger Dec 30, 2010 at 11:37:44 (UTC)
Goto Top
Danke Bastla für Deine Antwort.

Ich habe das in eine bat Datei gesetzt. Meine 4 Ordner habe ich als Ordner1,2,3,4 angelegt.

Aber die Ordner bleiben leer.

Die Bat Datei sieht ausgelesen so aus.

D:\a>set "Ordner1=D:\Neueste"

D:\a>set "Ordner2=D:\Nicht ganz neu"

D:\a>set "Ordner3=D:\Gar nicht neu"

D:\a>set "Ordner4=D:\Alt"

D:\a>for /F "tokens=1* delims=:" %i in ('dir /b /o-d Bodenanalyse_NA*.png|findst
r /n "^"') do if defined Ordner%i call echo move "%j" "%Ordner%i%\"

D:\a>if defined Ordner1 call echo move "Bodenanalyse_NA_290000.png" "%Ordner1%\"

move "Bodenanalyse_NA_290000.png" "D:\Neueste\"

D:\a>if defined Ordner2 call echo move "Bodenanalyse_NA_281200.png" "%Ordner2%\"

move "Bodenanalyse_NA_281200.png" "D:\Nicht ganz neu\"

D:\a>if defined Ordner3 call echo move "Bodenanalyse_NA_280000.png" "%Ordner3%\"

move "Bodenanalyse_NA_280000.png" "D:\Gar nicht neu\"

D:\a>if defined Ordner4 call echo move "Bodenanalyse_NA_271200.png" "%Ordner4%\"

move "Bodenanalyse_NA_271200.png" "D:\Alt\"

D:\a>pause
Drücken Sie eine beliebige Taste . . .


Gruß

Heinz
Member: bastla
bastla Dec 30, 2010 at 11:50:50 (UTC)
Goto Top
Hallo Baumberger!

Falls die einzelnen angezeigten "move"-Befehle, also zB
move "Bodenanalyse_NA_290000.png" "D:\Neueste\"
für Dich vernünftig aussehen (und die Ordner "D:\Neueste" etc tatsächlich bereits erstellt sind), müsstest Du eigentlich nur noch das oben angesprochene "echo" aus der Zeile 7 entfernen, damit diese Befehle auch tatsächlich ausgeführt werden ...

Noch ein Hinweis: In einem Batch werden ev schon vorhandene gleichnamige Dateien im Zielordner durch ein "move" kommentarlos (und vor allem ohne Rückfrage) überschrieben!

Grüße
bastla
Member: Baumberger
Baumberger Dec 30, 2010 at 12:27:03 (UTC)
Goto Top
Hallo bastla

Ja ich habe das echo nicht herausgenommen.

Danke für Deine Hilfe.

Es läuft so wie ich es haben wollte.

Kann man in die Datei noch hineinfügen, dass der Ordner zb. D:Neueste, vorher geleert wird ?


Gruß

Heinz
Member: bastla
bastla Dec 30, 2010 at 16:08:22 (UTC)
Goto Top
Hallo Baumberger!

Wenn alle Dateien aus dem Ordner gelöscht werden sollen:
del /q /f "D:\Neueste"
Um auch alle Unterordner los zu werden, zusätzlich
<code type=plain">for /d %%i in ("D:\Neueste\*.*") do rd /s /q "%%i"

Um schließlich das Ganze für alle 4 Ordner durchzuführen:
for /L %%i in (1,1,4) do (
    call pushd "%%Ordner%%i%%"  
    del /q /f *.*
    for /d %%a in ("*.*") do rd /s /q "%%a"  
    popd
)
Grüße
bastla