
65883
01.12.2010
Files bzw. Fotos per Batch kopieren
Ich verschiebe meine geschossenen Fotos von der Speicherkarte auf meiner Platte und sortiere sie chronologisch. Sprich ... ein Foto vom 01.12.2010 landet dann auf der Platte im Verzeichnispfad
D:\ 2010 \ 12 \ 01
Noch nicht vorhandene Verzeichnisse muss ich neu anlegen und die Fotos per Hand in die Verzeichnisse verschieben. Bei vielen Bildern gleichen Datums ist das keine all zu große Arbeit.
Haben sich aber viele Fotos aus verschiedenen Tagen auf der Speicherkarte angesammelt, beginnt die Sisyphus-Arbeit immer wieder von Vorne.
Leider habe ich noch nichts fertiges gefunden.
Ein Grund, das mal als Batch zu automatisieren.
Ist so was überhaupt per Batch möglich(?), denn der Batch müsste auch prüfen können, ob ein Verzeichnis/eine Datei schon vorhanden ist.
D:\ 2010 \ 12 \ 01
Noch nicht vorhandene Verzeichnisse muss ich neu anlegen und die Fotos per Hand in die Verzeichnisse verschieben. Bei vielen Bildern gleichen Datums ist das keine all zu große Arbeit.
Haben sich aber viele Fotos aus verschiedenen Tagen auf der Speicherkarte angesammelt, beginnt die Sisyphus-Arbeit immer wieder von Vorne.
Leider habe ich noch nichts fertiges gefunden.
Ein Grund, das mal als Batch zu automatisieren.
Ist so was überhaupt per Batch möglich(?), denn der Batch müsste auch prüfen können, ob ein Verzeichnis/eine Datei schon vorhanden ist.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 156121
Url: https://administrator.de/forum/files-bzw-fotos-per-batch-kopieren-156121.html
Ausgedruckt am: 22.04.2025 um 03:04 Uhr
3 Kommentare
Neuester Kommentar
Hallo truecolor!
Etwa so (ungetestet):
Das Erstellen der Zielverzeichnisse und die Verschiebebefehle werden (zum Testen und solange das "
<codetype="plain"> else (echo Datei "%Ziel%%%c\%%b\%%a\%%~nxi" bereits vorhanden!)
zur Zeile 7 eine entsprechende Meldung erzeugt werden.
Zu beachten wäre noch, dass die Angabe des Zielpfades (in Zeile 3) mit "\" enden muss.
Grüße
bastla
Etwa so (ungetestet):
@echo off & setlocal
set "Quelle=E:\DCIM"
set "Ziel=D:\"
for %%i in ("%Quelle%\*.jpg") do for /f "tokens=1-3 delims=. " %%a in ("%%~ti") do (
echo md "%Ziel%%%c\%%b\%%a" 2>nul
echo if not exist "%Ziel%%%c\%%b\%%a\%%~nxi" (move "%%i" "%Ziel%%%c\%%b\%%a\")
)
pause
echo
" in den Zeilen 6 und 7 steht) nur angezeigt ...denn der Batch müsste auch prüfen können, ob ein Verzeichnis/eine Datei schon vorhanden ist.
Vorhande Verzeichnisse sind kein Problem (die Fehlermeldung beim Versuch, ein solches Verzeichnis nochmals zu erstellen, wird einfach mit "2>nul
" unterdrückt). Gleichnamige Dateien würden nicht übertragen, sondern es könnte durch Hinzufügen von<codetype="plain"> else (echo Datei "%Ziel%%%c\%%b\%%a\%%~nxi" bereits vorhanden!)
zur Zeile 7 eine entsprechende Meldung erzeugt werden.
Zu beachten wäre noch, dass die Angabe des Zielpfades (in Zeile 3) mit "\" enden muss.
Grüße
bastla
Hallo,
zuerst musst Du aus dem Dateinamen des Fotos die Datumsinformationen extrahieren.
Hier ein Beispiel für die Extraktion aus %date%:
Der erste Befehl gibt 01.12.2010 zurück.
Der zweite Befehl erzeugt dann die von Dir gewünschte Verzeichnisstruktur.
Nun musst Du noch aus Deinen Fotodateien die Datumsfelder extrahieren...
Das ganze in eine Batchdatei:
.. so ungefähr könntest Du es machen.
viel Erfolg und Grüße
LS
zuerst musst Du aus dem Dateinamen des Fotos die Datumsinformationen extrahieren.
Hier ein Beispiel für die Extraktion aus %date%:
echo %date%
md %date:~-4%\%date:~-7,2%\%date:~-10,2%
Der zweite Befehl erzeugt dann die von Dir gewünschte Verzeichnisstruktur.
Nun musst Du noch aus Deinen Fotodateien die Datumsfelder extrahieren...
Das ganze in eine Batchdatei:
cd /d %FotoQuelle%
dir /b > liste.txt
for /F %%i IN (liste.txt) do call :PROC1 %%i
exit
:PROC1
echo [%1]
set ZIEL=%1:~-4%\%1:~-7,2%\%1:~-10,2%
md %ZIEL%
copy %1 %ZIEL%
goto :EOF
viel Erfolg und Grüße
LS