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, 3658 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 ..
Ähnliche Inhalte
Neue Wissensbeiträge
Windows 10

Plattformdienst für unbekannte Geräte (7023)

Tipp von KMUlife zum Thema Windows 10 ...

Administrator.de Feedback

Umgangsformen auf der Seite

(9)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(11)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
Windows Server Komplettspiegelung (15)

Frage von pdiddo zum Thema Windows Server ...

Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...