#applescript #using #finder #tell
#applescript #использование #поисковик #скажите
Вопрос:
У меня возникли некоторые проблемы с написанием сценария (того, что, как я думал, будет) очень простого раздела того, над чем я работаю. В принципе, я хочу сказать Finder открыть файл с помощью определенного приложения. Просто, не так ли? Из того, что я прочитал, я должен быть в состоянии использовать:
tell application "Finder"
open "the_file" using "the_application"
end tell
Проблема в том, что Finder, похоже, тратит чертовски много времени на поиск приложения. Когда я использую следующий код:
set webArcExtract to POSIX file (do shell script "mdfind 'WebArchive Folderizer.app' -onlyin '/Applications/'") as string #Find the Web Archive Extraction Program
tell application "Finder" #Temporary path to save the web archive
set tempPath to ((home as string) amp; "temp:")
end tell
tell application "Fake" #Magic that saves a webpage as a webarchive
load URL "www.google.com"
delay 3
capture web page as Web Archive saving in tempPath amp; "arc.webarchive"
end tell
tell application "Finder" #Open the arc.webarchive file saved in the tempPath with the WebArchive Folderizer application
open tempPath amp; "arc.webarchive" using webArcExtract
end tell
Значения переменных следующие:
tempPath: «OSX_Data:Пользователи: user:» webArcExtract: «OSX: Приложения: Утилиты:WebArchive Folderizer.app»
Ошибка, которую я получаю при попытке запустить код, возникает в строке open tempPath amp; «arc.webarchive» с использованием webArcExtract. Из Finder появляется сообщение о том, что «Приложение не может быть найдено».
Я действительно озадачен этим. Я ЗНАЮ, что путь правильный, и я знаю, что приложение может открывать файлы таким образом. Я могу использовать Finder, чтобы перейти к файлу arc.webarchive, который я пытаюсь открыть, щелкнуть правой кнопкой мыши по файлу и выбрать «открыть с помощью> WebArchive Folderizer», и это работает отлично.
Есть предложения?
Ответ №1:
Вот пара предложений. 1) более простой способ получить путь к приложению — это просто использовать команду applescript «path to», чтобы что-то вроде этого должно сработать…
set theFile to (path to desktop as text) amp; "a.txt"
set appPath to path to application "TextWrangler"
tell application "Finder" to open file theFile using appPath
2) Вам не нужен Finder для временного пути, снова просто используйте «путь к»…
set tempPath to (path to home folder as text) amp; "temp:"
3) наконец, здесь вам нужен спецификатор файла, поэтому добавьте ключевое слово «file» перед путем к файлу, как я сделал в # 1…
tell application "Finder"
open file (tempPath amp; "arc.webarchive") using webArcExtract
end tell
Я надеюсь, что это поможет.
Комментарии:
1. Ого! Я знал, что это что-то простое. Отсутствует существительное «файл». ( facepalm ) Теперь я чувствую себя идиотом. Также спасибо за подсказку о «пути к». Очень удобно. Я буду использовать это постоянно. Я подумал, что есть лучший способ сделать это.
2. 1; стоит отметить одну тонкость:
path to
на самом деле возвращает не строку пути, как можно было бы предположить, аalias
объект, указывающий на файл; чтобы превратить этот объект в строку пути в формате HFS, используйтеappPath as text
(как в ответе), для получения строки пути в формате POSIX используйтеPOSIX path of appPath
.