Ваша основная проблема - использование оператора or
внутри круглых скобок, который выполняется для двух строковых значений. Это не имеет смысла для AppleScript, и не должен. Правильное выражение будет:
...whose name extension is "DWG" or name extension is "STEP"
хотя Finder позволяет объединять эти предикаты в список, с которым он может работать совместно:
...whose name extension is in {"DWG", "STEP"}
Кроме того, переместите ваш окончательный end tell
сразу после объявления переменной MyFiles
- нет необходимости (и она активно препятствует) заключать операции Системные события внутри Finder блок.
Таким образом, ваша команда Finder должна выглядеть примерно так:
tell application "Finder" to set MyFiles to (every file of the entire contents of ¬
(choose folder) whose name extension is in {"DWG", "STEP"}) as alias list
Я довел его до alias list
в конце, потому что это ускорит время обработки по какой-то необъяснимой причине.
Последняя часть вашего сценария - это то, что я не могу представить слишком подробно, не зная больше об этом приложении «Носорог». Я сделал быстрый Google, но ничего не смог найти.
Но если она в состоянии понять команду open
, это подразумевает, что она может быть написана в сценарии и, вероятно, имеет команду save
, которая соответствует ей.
НИКОГДА пытайтесь добиться успеха, нажимая на координаты - это сломается с малейшим падением булавки. Если программа не поддерживает сценарии, она, вероятно, выдаст ошибку с помощью команды open
, и в этом случае лучше всего написать сценарий процесса приложения и получить доступ к меню save
команда.
Но я думаю, что вам будет трудно реализовать это успешно, в зависимости от того, как вы идете.
ОДНАКО , если все, что вы хотите, это, как вы заявили, сохранить эти файлы в одной папке, то вам не нужно пытаться использовать Rhinoceros совсем. Вместо этого используйте Finder до duplicate
(или move
) файлов в новом месте:
tell app "Finder" to duplicate MyFiles to MyFolder
или
tell app "Finder" to move MyFiles to MyFolder
Все это может быть сведено в одну строку, поэтому весь ваш сценарий (если вы действительно хотите, чтобы результат был) просто стал:
set myfolder to (choose folder)
tell application "Finder" to move (every file of the entire contents of myfolder ¬
whose name extension is in {"DWG", "STEP"}) as alias list to myfolder