Hallo Gerd,
das Script sollte die Ziffern der Positionen 5 und 6 aus des alten Dateinamens ausziehen. Die Variable
'nChars' ist die Anzahl der Zeichen des "alten" Präfixes, welches mit "DSCF" definiert ist. Aber oben
im geposteten Code habe ich beim Einsetzen der Variablen nicht aufgepasst. Anstatt ...
Code [b]set fixNum [b]to text nChars [b]thru (nChars + 1) [b]of fileName ... muss der Befehl so lauten:
Code [b]set fixNum [b]to text (nChars + 1) [b]thru (nChars + 2) [b]of fileName Wenn aber diese beiden Ziffern nicht per Script dem alten Dateinamen entnommen werden sollen, sondern
im Präfix-Dialog eingetippt werden müssen, dann muss man den Default-Text des Dialogs ändern, die Zeichen
des alten Präfixes müssen nicht gezählt und der neue Name kann einfacher zusammengesetzt werden.
Hier ist das gesamte, entsprechend korrigierte Script:
---
-- das "alte" Präfix (kann hier geändert werden) property oldPref : "DSCF" -- einen Dialog zeigen, falls der Anwender einen Doppelklick auf das Droplet macht on run display dialog "Einen Ordner, welcher die Bild-Dateien enthält, auf das Icon dieses Droplets ziehen." buttons "OK" default button 1 with icon 0 end run -- der 'open' Handler, welcher auf das Fallenlassen von Objekten reagiert on open allObjects set ctr to 0 -- den Doppelpunkt als Texttrenner definieren, damit der Name der Dateien ausgezogen werden kann set AppleScript 's text item delimiters to {":"} -- der Pfad des ersten Objekts wird in einen String verwandelt set objectPath to item 1 of allObjects as string -- wenn der Pfad mit einem Doppelpunkt endet, ist es ein Ordner if objectPath ends with ":" then -- das Präfix verlangen set okay to false repeat while okay is false set aPref to text returned of (display dialog "Präfix eingeben" default answer "Li_920_0015") set okay to true if aPref contains ":" or aPref contains "/" then display dialog "Ordnernamen dürfen keinen Doppelpunkt enthalten (und Bruchstriche sollten vermieden werden)." buttons ¬ "OK" default button 1 with icon 2 set okay to false end if end repeat -- den Dateizähler initialisieren set fCtr to 0 -- die Liste der Objekte wird erstellt (ohne unsichtbare Dateien) set contentsList to list folder objectPath without invisibles -- Wiederholungsschleife durch die Liste der Namen repeat with fileName in contentsList -- wenn der aktuelle Name mit dem alten Präfix beginnt ... if fileName starts with oldPref then -- den Pfad der aktuellen Datei zusammensetzen set aFile to (objectPath & fileName ) -- die Variable 'newName' als leer definieren set newName to "" -- den Dateizähler hochzählen set fCtr to fCtr + 1 -- den Wert mit führender Null versehen set varNum to text -2 thru -1 of ("0" & fCtr ) try -- das Suffix speichern set aSuf to text -4 thru -1 of fileName -- den neuen Namen zusammensetzen set newName to aPref & "_b" & varNum & aSuf end try -- wenn alles geklappt hat, dann ... if newName is not "" then try -- ... versuchen, die aktuelle Datei umzubenennen tell application "Finder" to set name of file aFile to newName on error -- wenn dies nicht möglich ist, den Wert des Zählers erhöhen set ctr to ctr + 1 end try end if end if end repeat end if -- den Textelement-Trenner wieder auf den Vorgabe-Wert (= leerer String) zurücksetzen set AppleScript 's text item delimiters to {""} -- wenn der Wert der Zählers 'ctr' Null ist, einen Dialog zeigen: die Script-Aktion ist fertig -- sonst anzeigen, wieviele Dateien nicht umbenannt werden konnten if ctr is 0 then display dialog "Fertig." buttons "OK" default button 1 giving up after 1 else display dialog "Nicht umbenannte Dateien: " & ctr & " (Konflikt: identische Namen)." buttons "OK" default button 1 with icon 2 end if end open ---
Gruss, Hans