Die Lightroom-Exportfunktionen sind ja an sich schon recht flexibel und mächtig. Wenn das nicht ausreicht gibt es unzählige Zusatz-Plugins um die Exportfunktionen zu erweitern. Ab und zu stößt man aber auch damit an Grenzen.
Bei mir war dies neulich der Fall. Wobei die Aufgabe eigentlich relativ simpel war: Wandle von beliebigen Eingabedateien alle Zeichen im Dateinamen in Kleinbuchstaben und ersetze alle Leerzeichen mit Unterstrichen. Es ging darum Dateinamen zu erzeugen, die im Web innerhalb einer URL keine Probleme verursachen. Klingt simpel, ist aber so mit Bordmitteln nicht direkt möglich. Man hätte bestimmte Funktionen (Leerzeichen-Ersetzung) global in den Voreinstellungen ändern können, da dies aber dann evtl. ungewollte Seiteneffekte auf andere Ausgabejobs gehabt hätte wollte ich das nicht umstellen. Was also tun? Bleibt nur selbst was Passendes zu bauen. Dafür ein Plugin zu entwickeln ist da die klassische Kanonen-Spatzen-Nummer. Es geht aber auch viel einfacher. Lightroom bietet uns die Möglichkeit nach dem Export externe Programme oder Scripte aufzurufen. Also braucht man nur noch ein kleines Script bauen, was dann entsprechend aufgerufen wird.
Als konkretes Beispiel für die genannte Aufgabe sei hier als Anregung für eigene Lösungen das entsprechende VisualBasicScript aufgeführt.
'Übergebene Dateinamen um Sonderzeichen und Spaces bereinigen sowie
'komplett auf Kleinschreibung umsetzen.
'Datei muss in Codierung ANSI gespeichert werden für korrekte Darstellung von Umlauten.
'übergebene Parameter auslesen
Set saArguments = WScript.Arguments
'wurden Argumente übergeben?
If saArguments.Count = 0 Then
MsgBox "Keine Dateinamen übergeben!", vbCritical + vbOKOnly, WScript.ScriptName
WScript.Quit
End If
Set oFSO = CreateObject("Scripting.FileSystemObject")
'alle Argumente der Reihe nach verarbeiten
For Each sFileNameOld in saArguments
'alles auf Kleinschreibung umsetzen
sFileNameNew = LCase(sFileNameOld)
'Umlaute ersetzen
sFileNameNew = Replace(sFileNameNew, "ä", "ae")
sFileNameNew = Replace(sFileNameNew, "ö", "oe")
sFileNameNew = Replace(sFileNameNew, "ü", "ue")
sFileNameNew = Replace(sFileNameNew, "ß", "ss")
'Leerzeichen ersetzen
sFileNameNew = Replace(sFileNameNew, " ", "_")
'Trennstriche (Datum, etc.) entfernen
sFileNameNew = Replace(sFileNameNew, "-", "")
'durch Ersetzung entstandene doppelte Unterstriche ersetzen
sFileNameNew = Replace(sFileNameNew, "__", "_")
'Falls Zieldatei vorhanden ist löschen
If oFSO.FileExists(sFileNameNew) Then
oFSO.DeleteFile(sFileNameNew)
End If
'Datei umbennen
oFSO.MoveFile sFileNameOld, sFileNameNew
Next
Set oFSO = Nothing
Nun muss das Ganze nur noch in den Export-Actions-Ordner von Lightroom kopiert werden und schon kann das Script im Export-Dialog ausgewählt werden.