Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Files bzw. Fotos per Batch kopieren

Frage Entwicklung Batch & Shell

Mitglied: truecolor

truecolor (Level 1) - Jetzt verbinden

01.12.2010 um 10:59 Uhr, 3645 Aufrufe, 3 Kommentare

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.
Mitglied: bastla
01.12.2010 um 11:37 Uhr
Hallo truecolor!

Etwa so (ungetestet):
01.
@echo off & setlocal 
02.
set "Quelle=E:\DCIM" 
03.
set "Ziel=D:\" 
04.
 
05.
for %%i in ("%Quelle%\*.jpg") do for /f "tokens=1-3 delims=. " %%a in ("%%~ti") do ( 
06.
    echo md "%Ziel%%%c\%%b\%%a" 2>nul 
07.
    echo if not exist "%Ziel%%%c\%%b\%%a\%%~nxi" (move "%%i" "%Ziel%%%c\%%b\%%a\") 
08.
09.
pause
Das Erstellen der Zielverzeichnisse und die Verschiebebefehle werden (zum Testen und solange das "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
 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
Bitte warten ..
Mitglied: laster
01.12.2010 um 11:47 Uhr
Hallo,

zuerst musst Du aus dem Dateinamen des Fotos die Datumsinformationen extrahieren.
Hier ein Beispiel für die Extraktion aus %date%:
01.
echo %date% 
02.
md %date:~-4%\%date:~-7,2%\%date:~-10,2%
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:
01.
cd /d %FotoQuelle% 
02.
dir /b > liste.txt 
03.
for /F %%i IN (liste.txt) do call :PROC1 %%i 
04.
exit 
05.
:PROC1 
06.
echo [%1] 
07.
set ZIEL=%1:~-4%\%1:~-7,2%\%1:~-10,2% 
08.
md %ZIEL% 
09.
copy %1 %ZIEL% 
10.
goto :EOF
.. so ungefähr könntest Du es machen.

viel Erfolg und Grüße
LS
Bitte warten ..
Mitglied: truecolor
01.12.2010 um 12:39 Uhr
Hallo bastla und laster,

also erst mal Respekt, dass ich so schnell eine Antwort bekommen habe.

Dann auch noch zwei Lösungen ... superklasse.

bastla´s Lösung hab ich schon getestet und bin zu 100% zufrieden.

laster´s Lösung führt zum gleichen Ziel, wenn er auch mit Hilfe einer DIR-Datei arbeitet.

Aber wie so oft ist das Ziel wichtig und weniger der Weg dorthin

Ihr habt mir beide viel Arbeit erspart.

Vielen Dank euch Beiden.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...