我想将.exe文件扩展名与启动wine的shell脚本相关联。做这个的最好方式是什么?
从我收集的内容来看,我需要创建一个可以调用wine的AppleScript,但是如何在AppleScript中获取输入文件的名称?如果有更好的方法来做到这一点,请告诉我,但据我所知,这是最好的方法。
答案 0 :(得分:6)
您还可以使用Automator将您自己的bash,python或ruby脚本包装在“应用程序”中。
打开Automator并选择创建应用程序。
找到操作“运行Shell脚本”并双击它或将其拖到脚本区域。
选择你想要的解释器(bash,其他shell,python或ruby)。
将“传递输入”选项设置为“作为参数”。 (在automator模型中,应用程序“接收文件和文件夹作为输入”;因此,这可以让您的脚本将文件名视为命令行参数)。
在编辑区域中输入您的shell脚本。在bash上,使用“$ @”作为命令行参数列表(单独引用以保护嵌入空格)。
您现在可以保存脚本(它将获得.app
扩展名),并将其移至“应用程序”文件夹或其他合理位置。它可以与文件类型相关联,就像任何其他应用程序一样。
注意:这适用于Mountain Lion(10.8);有人可以评论Automator能够做多久吗?
答案 1 :(得分:2)
您可以使用AppleScript应用程序执行此操作 - 文件将传递到打开处理程序,与Droplet相同,例如:
on open theFiles
set arguments to ""
repeat with anItem in theFiles
set arguments to arguments & space & (quoted form of POSIX path of anItem)
end repeat
do shell script "/path/to/wine" & arguments
end open
要将特定文档类型与您的应用程序相关联,您首先需要将信息添加到应用程序的信息属性列表( Info.plist ),以告知Launch Services它可以处理哪些类型的文档。请参阅Apple的Document-Based Applications Overview(或查看其他应用程序中的设置)。