如何在磁盘挂载上运行Applescript


11

挂载特定磁盘时,我想运行Applescript。并不是脚本是否位于磁盘上,而是应该在OS X挂载磁盘时运行。

我试图通过文件夹操作来完成此操作,但似乎无法以这种方式进行。

澄清:

  1. 我拿着Macbook回家
  2. 我将USB集线器插入设备
  3. 外部磁盘已安装在OS X中
  4. 我的Applescript运行,在这些磁盘上做一些事情

我想自动化第4步。


Answers:


4

您没有提到要在哪种环境下安装磁盘,但是如果采用另一种方式并使用Applescript来安装磁盘又如何呢?

我提到上下文是因为使用Applescript挂载磁盘是一个很大的警告,如果它是网络卷,并且网络受到密码保护,则用户名和密码必须作为纯文本存储在脚本中,以实现无缝连接执行。

更新: 一些搜索在其他地方找到了类似的问题。本质上,可以通过将脚本作为文件夹动作应用到/ Volumes来制作脚本来执行此操作:

on adding folder items to this_folder after receiving these_items
    repeat with aItem in these_items
        tell application "Finder"
            if (local volume of aItem) and (name of aItem is "[Name of Hard Drive]") then
                -- do something with the drive
                -- eject aItem
            end if
        end tell
    end repeat
end adding folder items to

我不想用AS挂载磁盘,我想在磁盘挂载时运行 AS。我将编辑我的帖子以使其更加清晰。
jsadfeew 2011年

我理解了这个问题,但我认为不可能很容易做到这一点。但是,我确实使用了一些工具,并发现了一些可以稍作调整即可满足您需求的工具。
菲利普·里根

我对该脚本做了一些小的修改。运作良好:)
jsadfeew 2011年

12

可能最可靠的解决方案是创建一个属性设置为的launchd作业:StartOnMount-boolean YES

StartOnMount <boolean>
该可选键使作业在每次装入文件系统时启动。

这是Time Machine的工作方式(请参阅参考资料/System/Library/LaunchDaemons/com.apple.backupd-attach.plist)。


我觉得这是最可靠的解决方案,因为它仅依赖于launchd,这是“这类事物”的正确位置。
马特

2

使用用于监视/ Volumes的Finder FolderAction。当出现新文件夹时,表示已连接了新磁盘。现在,您的FolderAction可以运行Automator动作,AppleScript或Shell脚本来执行操作。



0

一个解决方案是创建一个链接以下三个动作的Automator应用程序:

  • 获取指定的查找器项目
  • 挂载磁盘映像
  • 运行AppleScript

1
同样,我不想使用Applescript挂载映像或磁盘,而是想在挂载磁盘时运行脚本。我无法找到一种方法来完成您的步骤。
jsadfeew

是的,我在澄清后发现它不起作用,因为那是您要安装的硬盘驱动器(而不是映像磁盘)。
kraymer

由于您的回答所提出的问题与所提出的问题不同,因此您应考虑将其删除。
DanielSmedegaardBuus19年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.