Это будет работать, если вы установите псевдоним как свойство, а не как простую переменную.
Я скопировал ваш скрипт и продублировал поведение, которое вы заметили: если файл перемещен или переименован, скрипт можетбольше не могу его найти.
Затем я изменил скрипт так:
property samplePath : alias "Mimosa:Users:jerry:Desktop:Lost Cities"
tell application "Finder"
open samplePath
end tell
Теперь приложение скрипта смогло найти файл при его перемещении.И он смог найти файл, когда я его переименовал.
Разница, я думаю, заключается в том, что свойства сохраняются в приложениях при сохранении и между экземплярами, но простые переменные необходимо воссоздавать каждый раз из исходногопуть, который не будет работать, если исходный путь не пройден.
Рассмотрим этот вариант:
set samplePath to alias "Mimosa:Users:jerry:Desktop:Lost Cities"
on idle
global samplePath
tell application "Finder"
open samplePath
end tell
return 30
end idle
Он настроен так же, как ваш, но скрипт повторяется каждые тридцать секунд (сохраните его как «Оставайтесь открытыми », чтобы получить такое поведение).Если вы закроете файл, а затем переместите его, скрипт найдет файл на следующей итерации.Он также найдет его, если вы переименуете файл.
Это потому, что сценарию не нужно заново интерпретировать исходный путь к файлу.Он использует сохраненный псевдоним, который сохраняет себя, даже если файл перемещается или переименовывается.
Как только он вернется к тексту вашего скрипта, он потерпит неудачу;даже с изменением «свойства» ссылка будет разорвана, если я снова открою скрипт в редакторе AppleScript, так как он затем попытается переосмыслить исходный, теперь неверный путь.