daholle
Goto Top

Bilder automatisch sortieren per Batch

Moin,

kann mir jemand bitte verraten, wie ich am besten diese Batch-Datei so umbaue, das sie nach Tagen sortiert?

:: Dies ist eine .bat Datei zum Scannen eines Quellordners nach Dateien mit unterschiedlichem Erstellungsdatum um Sie einheitlich zu sortieren.
:: Diese Dateien werden dann geordnet nach dem Monat Ihrer Erstellung und dem dazugehörigen Jahr in einen seperaten Ordner namens "Akalf" verschoben.

@echo off & Setlocal

:: Festlegen der Variablen für Quell und Zielverzeichniss...

Set "QuellDirFiles=C:Temp*.*"
Set "ZielDirRoot=C:Akalf"

:: Erstellen der Ordner Anhand des Erstellungsdatums aller Dateien...

for %%i in (%QuellDirFiles%) do (
for /f "tokens=2-3 delims=. " %%a in ("%%~ti") do @if not exist "%ZielDirRoot%20%%b\%%a" md "%ZielDirRoot%20%%b\%%a"
)

:: Verschieben dieser Dateien...

for %%i in (%QuellDirFiles%) do @for /f "tokens=2-3 delims=. " %%a in ("%%~ti") do move "%%~fi" "%ZielDirRoot%20%%b\%%a"

Das z.B. alle Bilder vom 10.01.2007 in den Oderner 10.01.2007 kopiert werden.
Dickes Danke schon mal!

Mfg
DaHolle

Content-ID: 58983

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

Ausgedruckt am: 25.11.2024 um 06:11 Uhr

bastla
bastla 15.05.2007 um 08:36:51 Uhr
Goto Top
Hallo DaHolle!

Das könnte so aussehen:
@echo off & setlocal

:: Festlegen der Variablen für Quell und Zielverzeichnis...
set "QuellDirFiles=C:\Temp\*.*"  
set "ZielDirRoot=C:\Akalf"  

: Erstellen der Ordner anhand des Erstellungsdatums aller Dateien...
for %%i in (%QuellDirFiles%) do (
	for /f %%a in ("%%~ti") do (  
		if not exist "%ZielDirRoot%\%%a" <b>echo</b> md "%ZielDirRoot%\%%a"  
	
		:: Verschieben dieser Dateien...
		<b>echo</b> move "%%~fi" "%ZielDirRoot%\%%a"	  
	)
)
Falls Du auch (so wie ich) Ordnernamen in der Art von "2007-05-15" übersichtlicher findest, könntest Du folgende Variante versuchen:
@echo off & setlocal

:: Festlegen der Variablen für Quell und Zielverzeichnis...
set "QuellDirFiles=C:\Temp\*.*"  
set "ZielDirRoot=C:\Akalf"  

:: Erstellen der Ordner Anhand des Erstellungsdatums aller Dateien...
for %%i in (%QuellDirFiles%) do (
	for /f "tokens=1-3 delims=. " %%a in ("%%~ti") do (  
		if not exist "%ZielDirRoot%\%%c-%%b-%%a" <b>echo</b> md "%ZielDirRoot%\%%c-%%b-%%a"  
	
		:: Verschieben dieser Dateien...
		<b>echo</b> move "%%~fi" "%ZielDirRoot%\%%c-%%b-%%a"  
	)
)
Aus Sicherheitsgründen habe ich vor die "md" -bzw "move"-Anweisungen jeweils ein "echo" geschrieben, damit die Anweisungen angezeigt, aber noch nicht ausgeführt werden; wenn's für Dich OK aussieht, einfach die "echo" entfernen ...

Grüße
bastla
DaHolle
DaHolle 15.05.2007 um 15:51:13 Uhr
Goto Top
Traumhaft!!!

Vielen dank genau so hatte ich mir das vorgestellt!
Nun muss ich endlich nicht mehr die ganzen Ordner von Hand erstellen!

Mfg
DaHolle