我在编写脚本时遇到了一些麻烦(我认为会是这样),这是我正在研究的一个非常简单的部分。基本上,我想告诉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) & "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 & "arc.webarchive"
end tell
tell application "Finder" #Open the arc.webarchive file saved in the tempPath with the WebArchive Folderizer application
open tempPath & "arc.webarchive" using webArcExtract
end tell
变量的值如下:
tempPath:“OSX_Data:用户:用户:” webArcExtract:“OSX:Applications:Utilities:WebArchive Folderizer.app”
尝试运行代码时出现的错误发生在 open tempPath& “arc.webarchive”使用webArcExtract 行。 Finder弹出一条消息,指出“无法找到该应用程序。”
我真的被这个迷惑了。我知道路径是正确的,我知道应用程序可以这样打开文件。我可以使用Finder转到我正在尝试打开的arc.webarchive文件,右键单击该文件,然后选择“使用> WebArchive Folderizer打开”,它运行正常。
有什么建议吗?
答案 0 :(得分:3)
以下是一些建议。 1)获取应用程序路径的一种更简单的方法就是使用applescript的“path to”命令,这样这样的东西应该可以工作......
set theFile to (path to desktop as text) & "a.txt"
set appPath to path to application "TextWrangler"
tell application "Finder" to open file theFile using appPath
2)你不需要为tempPath配置Finder,只需使用“path to”...
set tempPath to (path to home folder as text) & "temp:"
3)最后你需要一个文件说明符,所以在文件路径之前添加关键字“file”就像我在#1中所做的那样......
tell application "Finder"
open file (tempPath & "arc.webarchive") using webArcExtract
end tell
我希望有所帮助。