Хотя это не скрипт AppleScript-ObjC, я публикую исправленную версию вашего собственного скрипта, чтобы он функционировал так, как вы описали:
tell application "System Events"
set itemPath to "/tmp/MyFolder"
set theItem to item itemPath
set fileName to quoted form of (get name of theItem)
set theFolder to POSIX path of (container of theItem)
set zipFile to fileName & ".zip"
end tell
do shell script "cd " & quoted form of theFolder & ¬
"; zip -r " & zipFile & space & fileName & ¬
"; mv " & zipFile & space & "~/Desktop/"
Пытаясь избежать использования Finder для операций с файловой системой.Это звучит нелогично, но не подходит для этого.Используйте Системные события , который, среди многих других преимуществ, имеет возможность обрабатывать пути posix.
Сценарий теперь архивирует папку и содержащиеся в ней элементы в архив на /tmp/MyFolder.zip
, затемперемещает этот архив на рабочий стол.