Ich habe zuvor nach dem Umbenennen von Dateien in einem Ordner gefragt ( Umbenennen von Dateien aus Ordnername mit Automator/AppleScript ), und jetzt habe ich einen Ordnerfluss, der fast funktioniert.
Ich habe in meinen Downloads einen Ordner mit dem Namen DOIT erstellt (gemäß Anhängen und Workflow-Screenshots). Ich lege dort einen Ordner mit dem Namen "Race Track 2019" ab, der einige zufällige Dateinamen enthält.
Was ich möchte, ist, die Dateien nacheinander vom Ordnernamen umzubenennen. Ich habe die Variable für den Ordnernamen funktioniert (gemäß Screenshots), aber die Dateien werden nicht umbenannt.
Ich wollte (in diesem Beispiel) zwei Dateien namens "Race Track 2019-1 und Race Track 2019-2" haben.
Achten Sie im Bild Automator- Ordneraktion weiter unten in dieser Antwort auf die Automator- Aktionen und ihre Einstellungen. Insbesondere ist bei den für die Aktion „Wert der Variablen abrufen“ festgelegten Optionen [√] Eingabe dieser Aktion ignorieren aktiviert .
Die erste Aktion , Set Value of Variable , wird auf eine Filter Finder Items- Aktion gesetzt IncomingFolder
und gefiltert , um nur den Ordner selbst zu erhalten, um ihn mit einer Run Shell Script- Aktion zu ermitteln und der Variablen im Set zuzuweisen Wert der variablen Aktion . name
FolderName
Es muss eine logische Unterbrechung zwischen dieser Aktion „Variablenwert festlegen“ und der darauffolgenden Aktion „Variablenwert abrufen “ geben, um dann die Ordner herauszufiltern, da die Dateien umbenannt werden, nicht die Ordner .
Das weiter unten in dieser Antwort gezeigte Bild zeigt die tatsächlich funktionierende Automator- Ordneraktion und warum es weder die Aktion Get Selected Finder Items noch ein grünes Häkchen gibt , da es im Hintergrund ausgeführt wird, wenn der Ordner Race Track 2019 in den Ordner abgelegt wird DOIT- Ordner.
In meinem Test:
Race Track 2019
├── cb4d4gdc.jpg
└── nn49494.jpg
Wurde:
Race Track 2019
├── Race Track 2019-1.jpg
└── Race Track 2019-2.jpg
Hier ist ein weiterer Ansatz, der ein AppleScript- Skript für die Ordneraktion verwendet .
Einer der Vorteile besteht darin, dass mehrere Ordner gleichzeitig im Zielordner der Ordneraktion abgelegt werden können .
Speichern Sie mit dem Skript-Editor den AppleScript- Beispielcode unter ~ /Library/Scripts/Folder Action Scripts und verwenden Sie Folder Action Setup , um ihn dem Zielordner zuzuweisen .
Beispiel AppleScript -Code :
on adding folder items to thisFolder after receiving theseNewItems
tell application "Finder"
repeat with thisItem in theseNewItems
set thisItemsProperties to properties of thisItem
if class of thisItemsProperties is folder then
set folderName to name of thisItemsProperties
set theseFiles to files of entire contents of thisItem
repeat with i from 1 to count theseFiles
set name of item i of theseFiles to ¬
folderName & "-" & i & "." & ¬
name extension of item i of theseFiles
end repeat
end if
end repeat
end tell
end adding folder items to
Anmerkungen:
Der codierte Beispiel- AppleScript- Code geht davon aus, dass umzubenennende Dateien eine Erweiterung haben . Wenn Sie auf Dateien ohne die Erweiterung reagieren müssen , muss der AppleScript- Beispielcode geändert werden, um diese Bedingung zu berücksichtigen.
Hinweis: Diese Automator- Ordneraktion wurde entwickelt, um jeweils einen einzelnen Ordner zu empfangen!
Das Löschen mehrerer Ordner führt dazu, dass alle Dateien den Namen des ersten gelöschten Ordners haben !
Informationen zu mehreren Ordnern finden Sie unter: Verwenden eines AppleScript-Skripts für die Ordneraktion
Wenn Sie möchten, dass Sie Ordner im Finder auswählen und die darin enthaltenen Dateien umbenennen können, erstellen Sie einen Automator- Dienst/eine Schnellaktion mit den Einstellungen, wie im Bild des Automator- Diensts/einer Schnellaktion unten gezeigt, und fügen Sie eine Aktion „AppleScript ausführen“ hinzu mit dem AppleScript - Beispielcode .
Beispiel AppleScript -Code :
on run {input, parameters}
tell application "Finder"
repeat with thisItem in input
set folderName to name of thisItem
set theseFiles to files of entire contents of thisItem
repeat with i from 1 to count theseFiles
set name of item i of theseFiles to ¬
folderName & "-" & i & "." & ¬
name extension of item i of theseFiles
end repeat
end repeat
end tell
end run
Anmerkungen:
Der codierte Beispiel- AppleScript- Code geht davon aus, dass umzubenennende Dateien eine Erweiterung haben . Wenn Sie auf Dateien ohne die Erweiterung reagieren müssen , muss der AppleScript- Beispielcode geändert werden, um diese Bedingung zu berücksichtigen.
Hinweis: Der Beispiel- AppleScript- Code ist genau das und enthält abgesehen von der enthaltenen Fehlerbehandlung keine zusätzliche Fehlerbehandlung , die angemessen sein könnte. Es liegt in der Verantwortung des Benutzers, eine Fehlerbehandlung hinzuzufügen, die angemessen, erforderlich oder gewünscht ist. Sehen Sie sich die try- Anweisung und die error- Anweisung im AppleScript Language Guide an . Siehe auch Arbeiten mit Fehlern . Zusätzlich kann die Verwendung des Verzögerungsbefehls gegebenenfalls zwischen Ereignissen erforderlich sein, z. B. mitdelay 0.5
dem Wert der Verzögerungpassend einstellen.
Lustige Tatsache – wenn Sie dies in Automator etwas falsch machen, können Sie am Ende jede Datei auf Ihrem Computer umbenennen. Ich habe es vielleicht mehr als nur ein bisschen falsch gemacht, aber (falls ich jemals die Neuinstallation meines Betriebssystems abschließe) glaube ich nicht, dass ich meine Theorie testen werde.
Jason Smith