我想将 .exe 文件扩展名与启动 wine 的 shell 脚本相关联。做这个的最好方式是什么?
根据我收集到的信息,我需要创建一个名为 wine 的 AppleScript,但是如何在 AppleScript 中获取输入文件的名称?如果有更好的方法可以做到这一点,请告诉我,但据我所知,这是最好的方法。
我想将 .exe 文件扩展名与启动 wine 的 shell 脚本相关联。做这个的最好方式是什么?
根据我收集到的信息,我需要创建一个名为 wine 的 AppleScript,但是如何在 AppleScript 中获取输入文件的名称?如果有更好的方法可以做到这一点,请告诉我,但据我所知,这是最好的方法。
您还可以使用 Automator 将您自己的 bash、python 或 ruby 脚本包装在“应用程序”中。
打开 Automator 并选择创建一个应用程序。
找到“Run Shell Script”动作,双击或拖动到脚本区域。
选择所需的解释器(bash、其他 shell、python 或 ruby)。
将“传递输入”选项设置为“作为参数”。(在自动机模型中,应用程序“接收文件和文件夹作为输入”;因此这让您的脚本将文件名视为命令行参数)。
在编辑区域中输入您的 shell 脚本。在 bash 上,使用“$@”作为命令行参数列表(单独引用以保护嵌入的空格)。
您现在可以保存脚本(它将获得一个.app
扩展名),并将其移动到 Applications 文件夹或其他合理的位置。它可以与文件类型相关联,就像任何其他应用程序一样。
注意:这适用于山狮(10.8);有人可以评论 Automator 能够做到这一点多长时间吗?
您可以使用 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 的基于文档的应用程序概述(或查看其他应用程序中的设置)。