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

Trc*_*rcx 9 bash shell applescript wine exe

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

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

ale*_*xis 7

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

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

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

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

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

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

您现在可以保存脚本(它将获得.app扩展名),并将其移动到Applications文件夹或其他合理位置.它可以与文件类型相关联,就像任何其他应用程序一样.

注意:这适用于Mountain Lion(10.8); 有人可以评论Automator能够做多久吗?


小智 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
Run Code Online (Sandbox Code Playgroud)

要将特定文档类型与您的应用程序关联,您首先需要将信息添加到应用程序的信息属性列表 ( Info.plist ) 以告诉启动服务它可以处理哪些类型的文档。请参阅 Apple基于文档的应用程序概述(或查看其他应用程序中的设置)。