Ich bin neu bei AppleScript und Automator. Ich habe die verschiedenen Threads bei Apple durchsucht, aber nichts Nützliches gefunden.
Nun, mein Problem ist, dass ich einen Ordner habe, dh "Arbeit", auf den ich eine Ordneraktion angewendet habe. Beim Erstellen eines neuen Ordners bei "Arbeit", dh "abc", möchte ich drei neue Ordner in "abc" erstellen. Schauen Sie sich meinen Code an
on adding folder items to this_folder after receiving added_items
tell application Finder
repeat with this_item in added_items
make new folder at this_item with properties {name:"Main"}
make new folder at this_item with properties {name:"Lower"}
make new folder at this_item with properties {name:"Upper"}
end repeat
end tell
end adding folder items to
Das erste, was ich in Ihrem Code falsch sehe, ist tell application Finder
, da es Finder
sich in diesem Fall um eine Variable handelt , da sie nicht in doppelte Anführungszeichen gesetzt wird. Es sollte sein:tell application "Finder"
Das heißt, Sie haben als Tags, macos , mac , applescript und automator und im OP nicht angegeben, wo und wie Sie den Code auf den Zielordner , this_folder
, als Ordneraktion angewendet haben . Mit anderen Worten, wenn Sie die Folder-Aktion in Automator erstellt haben und nur diesen Code als Code in einer Run AppleScript- Aktion haben, wird es trotz der doppelten Anführungszeichen um Finder fehlschlagen. Diese Codierungsstruktur ist nur als AppleScript-.scpt- Datei gültig , die a zugewiesen istOrdneraktion mit Ordneraktionen einrichten... im Abschnitt "Dienste" des Kontaktmenüs im Finder .
Der folgende Beispielcode ist, wie ich ihn als AppleScript .scpt- Datei schreiben würde, die einer Ordneraktion zugewiesen wird , indem Ordneraktionen einrichten... im Abschnitt Dienste des Kontaktmenüs im Finder verwendet wird .
on adding folder items to this_folder after receiving added_items
try
tell application "Finder"
repeat with this_item in added_items
if (class in (get properties of this_item) as string) is "«class cfol»" then
make new folder at this_item with properties {name:"Main"}
make new folder at this_item with properties {name:"Lower"}
make new folder at this_item with properties {name:"Upper"}
end if
end repeat
end tell
end try
end adding folder items to
Beachten Sie, dass, obwohl durch die Verwendung der try
Anweisung Fehler gefressen werden sollten, ich dennoch eine if
Anweisung hinzugefügt habe, um sicherzustellen, dass das Element, auf das reagiert wird, ein Ordner und keine Datei ist . Beachten Sie, dass die if
Anweisung zwar nicht unbedingt erforderlich ist, meiner Meinung nach jedoch eine angemessenere Methode zum Schreiben von Code darstellt . Sie kann jedoch weggelassen werden, wenn Sie möchten.
Die AppleScript .scpt- Dateien des Benutzers für Ordneraktionen sollten gespeichert werden, z. B.:
/Users/me/Library/Scripts/Folder Action Scripts/filename.scpt
Wenn Sie die Ordneraktion über Automator erstellen , verwenden Sie in der Aktion „AppleScript ausführen“ den folgenden Beispielcode_ :
on run {input, parameters}
try
tell application "Finder"
repeat with this_item in input
if (class in (get properties of this_item) as string) is "folder" then
make new folder at this_item with properties {name:"Main"}
make new folder at this_item with properties {name:"Lower"}
make new folder at this_item with properties {name:"Upper"}
end if
end repeat
end tell
end try
end run
Beachten Sie, dass ich beide Beispielcodeblöcke unter den oben genannten Bedingungen getestet habe und sie wie codiert funktionieren.
Hacker atmen