在选定文件上运行脚本

时间:2016-09-03 16:20:57

标签: macos terminal applescript rar unrar

我正在尝试制作脚本或自动unrar将所选文件解压缩到特定文件夹(硬编码)。

我希望在选择文件时,通过单击finder中的按钮或键盘快捷键在终端中运行以下代码。

unrar e <path_to_selected_file.rar> <hard_coded_path>

我怎样才能以最好的方式做到这一点?

1 个答案:

答案 0 :(得分:1)

如果您的目标路径是硬编码的,那么我建议您使用Automator。 首先创建一个服务。选择顶部,&#34;获取文件&#34;在应用程序&#34; Finder&#34;。 然后只添加一个动作:&#34;运行Applescript&#34;。

在该操作中,默认脚本以变量&#34; input&#34;开头。当您在Finder中右键单击它们时,此变量将包含所有选定文件的列表。构建脚本以循环遍历该列表的文件,使用POXIS函数将finder路径(myUser:myfolder:myfile)转换为shell路径(myUser / myfolder / myfile)。使用此路径,使用&#34; do shell脚本&#34;命令运行你的&#34; unbar&#34;脚本。

保存和测试后,您还可以为该服务定义快捷键(在“系统偏好设置”中)。

以下是应在Applescript Action中的脚本:

on run {input, parameters}
set Destination to path to desktop folder -- User Desktop by default. can be changed    
set PosixDest to POSIX path of Destination

set SelectedFiles to input
repeat with myFile in SelectedFiles -- loop through each selected file
    set PosixF to POSIX path of myFile -- convert Finder path to Unix path
    try -- try block to handle error during unbar
        do shell script "unrar e " & (quoted form of PosixF) & " " & (quoted form of PosixDest)
    end try
end repeat -- next file

return input
end run

只要您选择压缩文件(接受unbar命令),此示例就会运行。为了更安全,您应该只在文件中添加一个测试,以检查它是否为unbar文件。如果没有,就什么都不做。