Umbenennen von Dateien mit einer RegEx-Suche, vorzugsweise über JXA

Ich habe hier eine zweiteilige Frage. Ich versuche, einen Automator-Dienst zum schnellen Umbenennen von Dateien zu erstellen. Mein Job verwendet eine Dateinamensyntax von 1234-01a-FileName.psd, wobei 1234 die Jobnummer ist, 01 die Dateinummer und das a ein Versionsbuchstabe ist, wie in Version zwei wird 01b usw. Erhalten des aktuellen Buchstabens mit RegEx und das Erhöhen ist einfach, das Problem, das ich habe, ist, wie ich die Datei tatsächlich mit JXA umbenennen kann. Nichts, was ich bei Google finden kann, beantwortet diese (ich nehme an) einfache Frage. Ich habe eine Reihe von Permutationen der folgenden versucht. Mache ich hier etwas grundlegendes falsch?

theFile = Path("~/Desktop/1234-12a-test.png");
theFile.name = "thisDoesntWork.png";

Ich könnte alternativ sowohl ein Run AppleScript als auch ein Run Javascript im Automator-Workflow haben und versuchen, den Namen hin und her zu übergeben, aber ich würde es nach Möglichkeit lieber einfach halten.

Antworten (1)

Das Path-Objekt ist eine sehr grundlegende Struktur und bietet keine eigentliche Dateisystemfunktionalität. Verwenden Sie stattdessen Systemereignisse:

theFile = Application("System Events").aliases.byName("~/Desktop/1234-12a-test.png");
theFile.name = "thisDoesWork.png"
Aaaah, danke! Kennen Sie zufällig Ressourcen, die erklären, welche Pfadobjekte für / andere Dateisysteminformationen verwendet werden? Die Dokumentation von Apple ist nicht sehr hilfreich, und das JXA-Kochbuch ging nicht wirklich darauf ein.
@Alexander Ich habe sie immer nur anstelle einer Zeichenfolge zurückgegeben gesehen, die sich auf einen Pfad bezieht, und es scheinen keine Eigenschaften auf ihnen zu sein, aber das ist nur empirisch - die JXA-Dokumentation ist sehr spärlich!