问题
I have new folders added daily. Is it possible to link an existing folder action script to the new folder automatically?
回答1:
They have always been hidden for some reason, but but there are attach action to
and remove action from
commands in the System Events scripting dictionary. The syntax also changed a bit around the time of Snow Leopard, which didn't help either. A general purpose handler for attaching folder action scripts (tested in Mojave) would be something like:
on run -- example
set theFolder to (choose folder with prompt "Choose folder to attach:" default location path to desktop)
set theScript to (choose file with prompt "Choose folder action script:" default location path to Folder Action scripts)
tell application "System Events" to set theName to name of theScript
attachAction(theFolder, theName)
end run
on attachAction(folderPath, scriptName)
(*
attach a script from "~/Library/Scripts/Folder Action Scripts" to a folder
parameters - folderPath [text or alias]: the folder to attach to
scriptName [text]: the name of the script to attach
returns [boolean]: true if successfully attached, false otherwise
*)
tell application "System Events"
try -- enable existing folder action
set folderName to name of disk item (folderPath as text)
set enabled of folder action folderName to true
on error errmess -- create new
log errmess
try
make new folder action at end of folder actions with properties {enabled:true, name:folderName, path:folderPath}
on error errmess -- oops (bad path, etc)
log errmess
return false
end try
end try
try -- enable existing folder action script
tell folder action folderName to set enabled of script scriptName to true
on error errmess -- create new
log errmess
try
tell folder action folderName to make new script at end of scripts with properties {name:scriptName}
on error errmess -- oops (bad name, etc)
log errmess
return false
end try
end try
return true
end tell
end attachAction
来源:https://stackoverflow.com/questions/58193103/is-it-possible-to-automate-attaching-a-script-to-a-folder