UPDATE * трохи зменшив код і виправив шлях
Оскільки ви попросили яблучний сценарій ...
on run {input, parameters}
tell application "Finder"
set thefolderPath to "folder1:folder2:"
set mycontainer to (path to me)
set movePath to folder thefolderPath of container of (path to me)'s container as alias
duplicate input to movePath
end tell
end run
Це також усуває дію копіювання, оскільки тут робиться і дублювання.
ОНОВЛЕННЯ 2
З цією версією. Не має значення, де знаходиться додаток. Шлях відпрацьований там, де знаходяться файли.
on run {input, parameters}
set thefolderPath to "folder1:folder2:"
tell application "Finder"
set thisItem to item 1 of input as alias
set movePath to folder thefolderPath of container of (thisItem)'s container as alias
duplicate input to movePath
end tell
end run
ОНОВЛЕННЯ 3
Ця версія є такою ж, як оновлення 2. Але буде перевірена на вашу папку1 та папку2.
Якщо жодної папки не існує, вона зробить їх і перемістить файли до них. Якщо тільки папка2 не існує. Тоді вона лише зробить цю папку всередині папки1. Значення існуючих елементів у папці1 є безпечними.
on run {input, parameters}
set thefolderPath to "folder1/folder2/"
tell application "Finder"
set thisItem to item 1 of input as alias
set movePath to container of (thisItem)'s container as alias
set theTestPath to ((POSIX path of movePath) & "/" & thefolderPath)
if (do shell script "/bin/test -e " & quoted form of theTestPath & " ; echo $?") is "1" then
-- 1 is false
do shell script "/bin/mkdir -p " & quoted form of theTestPath
end if
set theActualPath to (POSIX file theTestPath) as alias
duplicate input to theActualPath
end tell
end run
cp files*.txt ../Folder1/Folder2