This script was running beautifully prior to Mavericks, but now it doesn't work for me at all. Here's what I have, pulled from Automator:
-----------------------------------
on run {input, parameters} -- create folders and move
(*
make new folders from file creation dates (if needed), then move document files into their respective new folders
if no container is specified (missing value), the new folder will be created in the containing folder of the item
if the container is not a valid path (and not missing value), one will be asked for
input: a list of Finder items (aliases) to move
output: a list of the Finder items (aliases) moved
*)
set output to {}
set SkippedItems to {} -- this will be a list of skipped items (errors)
set TheContainer to "" -- a Finder path to a destination folder, or missing value for the source folder
if TheContainer is not missing value then try -- check the destination path
TheContainer as alias
on error
set TheContainer to (choose folder with prompt "Where do you want to move the items?")
end try
tell application "Finder" to repeat with AnItem in the input -- step through each item in the input
if TheContainer is not missing value then -- move to the specified folder
set {class:TheClass, name:TheName, name extension:TheExtension} to itemAnItem
else -- move to the source folder
set {class:TheClass, name:TheName, name extension:TheExtension, container:TheContainer} to itemAnItem
end if
if TheClass is document file then try -- just documents
set TheDate to text 1 thru 10 of (creation date of AnItem as «class isot» as string) -- YYYY-MM-DD
try -- check if the target folder exists
get ("" & TheContainer & TheDate) as alias
on error -- make a new folder
makenewfolderatTheContainerwith properties {name:TheDate}
end try
-- duplicate anItem to the result
move AnItem to the result
set the end of output to (result as alias) -- the new file alias
on error -- permissions, etc
-- set the end of skippedItems to (anItem as text) -- the full path
set the end of SkippedItems to TheName -- just the name
end try
end repeat
ShowSkippedAlertforSkippedItems
return the output-- pass the result(s) to the next action
end run
to ShowSkippedAlertforSkippedItems
(*
show an alert dialog for any items skipped, with the option to cancel the workflow
parameters - skippedItems [list]: the items skipped
returns nothing
*)
if SkippedItems is not {} then
set {AlertText, TheCount} to {"Error with AppleScript action", (count SkippedItems)}
if TheCount is greater than 1 then
set theMessage to (TheCount as text) & space & " items were skipped:"
else
set theMessage to "1 item was skipped:"
end if
set {TempTID, AppleScript'stext item delimiters} to {AppleScript'stext item delimiters, return}
set {SkippedItems, AppleScript'stext item delimiters} to {SkippedItems as text, TempTID}
tell application "System Events" to if button returned of (display alert AlertText message (theMessage & return & SkippedItems) buttons {"Cancel", "OK"}) is "Cancel" then error number -128
end if
return
end ShowSkippedAlert
--------------------------------------------
The above is set to Folder Action for a specific folder. When I move files into the designated folder, nothing happens, despite this script being set as a Folder Action in Finder. When I run it in Automator it happily reports that the workflow is completed. But nothing actually happens in Finder -- the files haven't moved or anything.
I have no script expertise at all (obviously) but was so grateful to have found this script back when it was working. Any help would be appreciated.