Lightroom-LogoDie 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.

Export-Scripte in Lightroom

Markiert in:            

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.