在OSX 10.10(Yosemite)中使用Applescript时,似乎Apple改变了一些默认行为。
on open dropped_files
display dialog (count of dropped_files)
end open
这个非常基本的Applescript强调了这个问题。如果我从Finder中选择一组6个文件,并放入/删除到此脚本的编译版本,我会得到响应" 2"然后回应" 4"。它应该响应" 6" ...但它几乎就像Finder将文件解析为较小的组一样。如果我再次这样做,我得到一个不同的数字组合,所以它似乎不一致。
这不是我的应用程序所需的行为,任何解决方案的想法?我从未在旧版本的Applescript中看到过这种行为。
答案 0 :(得分:2)
这种奇怪的效果是由于隔离文件造成的。可以使用以下命令检查隔离文件:
xattr -p com.apple.quarantine *
根据隔离/非隔离文件的排序顺序,它将分别执行" on open"每个组的处理程序(无论是隔离的还是非隔离的):例如,1 - 隔离,4 - 非隔离,3 - 隔离。您会注意到在此示例中提交了两组隔离文件,这是因为该特定列表的排序方式和提交给打开的处理程序。
这种行为相当令人惊讶,我已将其作为错误报告提交给Apple。可以使用以下命令删除隔离属性:
sudo xattr -dr com.apple.quarantine *
显示正确的文件数。另外,请参阅regulus6633上面的Applescript技巧,以获得一个聪明的解决方法。
答案 1 :(得分:1)
property dFiles : {}
on open dropped_files
set dFiles to dFiles & dropped_files
end open
on quit
display dialog (count of dFiles)
set dFiles to {}
continue quit
end quit