Bilder kopieren und sortieren, ich mag keine Klickexzesse
Alle Bilder auf einmal
Als Hobbyfotograf mach ich sowohl mit dem Händi (Smartphone) so wie auch einer richtigen Kamera meine Fotos,
die sich mit der Zeit auf der/den SD-Karte/n ansammeln.
Irgendwann muß man sich aber Zeit nehmen und sie Archivieren, Sortieren und evtl. benennen.
Alleine die Aktion die Bilder auf entsprechende Verzeichnisser zu verteilen, ist mir zu Mühsam.
Vermutlich gibt es dazu auch fertige Tools, aber zum Spaß hab ich mir vor Jahren mal was zurecht geschnitzt.
EAGLE als Kopierknecht
Alles begint mit einer Verknüpfung auf dem Desktop.
Als Ziel dieser Verknüpfung (Link) ist folgende Zeile eingetragen:
C:\Prog\eg7\bin\eagle.exe -U "D:\eg\Home7\webcam.usr" -S"D:\eg\eg7\scr7\kopiere_Bilder_von_SD-Karte.scr" "leer.brd"
Hier habe ich mir EAGLE zusätzlich auf einem weiteren Pfad installiert, damit garantiert nichts mit den anderen EAGLE-Installationen kollidiert. [1]
Ausführen in:
C:\Prog\eg7\bin
Und jetzt zum Ablauf des Ganzen:
Im Voraus noch ein Hinweis:Wenn EAGLE eine neues Editor-Fenster öffnet, dann wird die eagle.scr gestartet und alle Befehle die unter der entsprechenden
Rubrik SYM: PAC: DEV: LBR: BRD: SCH: stehen werden ausgeführt.
Um jetzt ein spezielles Script statt der eagle.scr zu starten, gibt es die Option -S.
-
Die Verknüpfung startet die eagle.exe mit der Option -U
um EAGLE mitzuteilen, dass eine spezielle eaglerc.usr-Datei benutzt werden soll.-U "D:\eg\Home7\webcam.usr"
In dieser Datei merkt sich EAGLE entsprechende Einstellungen des Benutzer. -
Die Option -S
veranlasst EAGLE beim Laden einer Datei (.brd/.sch) ein Script zu starten.-S"D:\eg\eg7\scr7\kopiere_Bilder_von_SD-Karte.scr"
-
Sowohl ein Script und auch ein ULP kann nur in einem Editor-Fenster (SCH/BRD(LBR/DEV(PAC/SYM) gestartet werden.
Um jetzt das angegebene Script automatisch zu starten, muß zwingend eine Datei geladen werden.
In diesem Fall benutze ich den Namen"leer.brd"
das ja nicht existiert, und Eagle damit zwingt ein neues Editor-Fenster zu öffnen, das dann das leer.brd
temporär angelegt. -
Ist das Board erzeugt startet EAGLE das SCRIPT, und darin steht folgender Aufruf:
RUN 'D:/...../ulp/azulp/kopiere_Bilder_von_SD-Karte.ulp'
Also der Aufruf eines ULP.
Das ULP sucht jetzt nach entsprechenden verfügbaren Laufwerken: C:\, D:\, USB, SD, ...
Die dann in einem Dialog angezeigt werden.
Hier wählt man die entsprechenden Verzeichnisse und startet aus dem Dialogmenü mit "[OK] -
Jetzt wird im Quell-Ordner nach .jpg; .mp4 Dateien gesucht, dann eine Batch-Datei erzeugt, die mit dem
altbewährten COPY-Befehl der Eingabeaufforderung (DOS-Box) die Dateien in den Zielordner kopiert.
Beim erzeugen der Batch-Datei wird das Erstelldatum des Bildes/Video ermittelt, und entsprechende DOS-Kommandos
abgesetzt, die dann automatisch einen Ordner mit JJJJ und darunter ein Ordner JJJJ-MM-TT anlegen.
Alle Dateien (Bilder/Videos) mit dem gleichen Datum werden in diesen Ordner JJJJ-MM-TT kopiert.
Anschließend wird geprüft ob die Dateien korrekt kopiert wurden, dann folgt eine Abfrage ob die Dateien
auf der SD-Karte (USB-Stick) gelöscht werden sollen. -
Das ULP kann beendet werden und das temporäre "leer,brd" wird verworfen.
Und wenn es doch so schön funktioniert, kann man es auch benutzen. ;-)
[1] Da man mit cfgset() und cfgget() eigene Paramter in der eaglerc.usr [2] speichern kann, benutze ich hier einen speziellen Dateinamen für die .usr Datei.
[2] Wie oben beschrieben, möchte ich Konflikten aus dem Weg gehen, da so einige meiner ULPs entsprechende Einträge in der eaglerc.usr vornehmen.
Und nicht vergessen, dass sich EAGLE in der eaglrc.usr den Pfad zur letzen benutzen eagle.epf merkt, und den möchte ich nicht verändern,
sonst muß ich mich beim nächsten Elektronik; Elektro; Hydraulik; Konstruktions-Projekt das letzte Projekt wieder suchen.