OSX将shell脚本与文件扩展名相关联?

时间:2011-08-25 04:00:37

标签: bash shell applescript exe wine

我想将.exe文件扩展名与启动wine的shell脚本相关联。做这个的最好方式是什么?

从我收集的内容来看,我需要创建一个可以调用wine的AppleScript,但是如何在AppleScript中获取输入文件的名称?如果有更好的方法来做到这一点,请告诉我,但据我所知,这是最好的方法。

2 个答案:

答案 0 :(得分:6)

您还可以使用Automator将您自己的bash,python或ruby脚本包装在“应用程序”中。

  1. 打开Automator并选择创建应用程序。

  2. 找到操作“运行Shell脚本”并双击它或将其拖到脚本区域。

  3. 选择你想要的解释器(bash,其他shell,python或ruby)。

  4. 将“传递输入”选项设置为“作为参数”。 (在automator模型中,应用程序“接收文件和文件夹作为输入”;因此,这可以让您的脚本将文件名视为命令行参数)。

  5. 在编辑区域中输入您的shell脚本。在bash上,使用“$ @”作为命令行参数列表(单独引用以保护嵌入空格)。

  6. 您现在可以保存脚本(它将获得.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(或查看其他应用程序中的设置)。