【问题标题】:AppleScript "on open" misbehaviorAppleScript“打开”不当行为
【发布时间】:2015-06-04 07:34:28
【问题描述】:

我在本地服务器上有一个 jpeg 图像列表,我使用 AppleScript droplet 在 Photoshop 中调整大小。我使用“on open”来执行此操作,但发生了一些奇怪的事情:它们分两部分打开。

文件命名如下:

0_203.jpg
1_203.jpg
2_203.jpg
3_203.jpg
4_203.jpg
5_203.jpg
6_203.jpg
7_203.jpg
8_203.jpg
9_203.jpg
10_203.jpg
11_203.jpg
12_203.jpg
13_203.jpg
14_203.jpg
15_203.jpg
16_203.jpg
17_203.jpg
18_203.jpg
19_203.jpg
20_203.jpg

脚本应该依次对每个文件执行操作,但是发生了一些奇怪的事情:它将文件分成两组并运行脚本两次。该脚本按如下方式拆分组:

1_203.jpg
2_203.jpg
3_203.jpg
4_203.jpg
5_203.jpg
6_203.jpg
7_203.jpg
8_203.jpg
9_203.jpg
10_203.jpg
11_203.jpg
12_203.jpg

...然后使用这些文件再次运行...

0_203.jpg
13_203.jpg
14_203.jpg
15_203.jpg
16_203.jpg
17_203.jpg
18_203.jpg
19_203.jpg
20_203.jpg

这到底是怎么回事?

这是我用来调试的测试脚本:

on open myItems
    set myList to {}

    set AppleScript's text item delimiters to ":"
    repeat with thisItem in myItems
        set newItem to thisItem as string
        copy newItem to end of myList
    end repeat
    display dialog myList as string

end open

【问题讨论】:

  • 脚本是什么并不重要——任何以“on open”开头的东西。我添加了一个我用过的脚本。
  • 您是否尝试过将这个:set newItem to thisItem as string copy newItem to end of myList 替换为:set end of myList to (thisItem as text)?此外,每当弄乱文本项分隔符时,最好先保存原始分隔符,然后在脚本完成时将它们设置为原始值。
  • 是的,我知道重置分隔符是标准做法——我只是没有打扰,因为它是一个测试脚本。至于你的建议,没什么区别。该脚本将这些文件分成两组,然后在每组上单独运行。我知道这是因为它显示了两次对话框,但重复后代码只有一个对话框显示。看起来这真的不是 AppleScript 问题,实际上可能是服务器端问题。
  • 答案是文件被系统设置为隔离。下面的答案就是问题所在。感谢您的帮助。

标签: applescript


【解决方案1】:

查看here 发布的问题和答案。我提供了一个变通方法作为解决方案。

【讨论】:

  • 这就是答案。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 2015-05-28
  • 1970-01-01
  • 2019-03-29
相关资源
最近更新 更多