AppleScript代码适用于High Sierra,但不适用于Monterey



我想查看一个文件夹,选择所有名称中包含"abc"的文件。

下面是我的AppleScript代码:

set myFolder to (((path to library folder from user domain) as string) & "FOLDER") as alias
tell application "Finder"
set deleted123 to every file of folder myFolder whose name contains "abc"
repeat with oneFile in deleted123
if exists (deleted123) then set end of deleted123 to oneFile & return
--Do something
end repeat

if deleted123 ≠ {} then
--Do something else with the selected.
end if
end tell

代码在High Sierra上工作得很完美,也就是说,它能找出所有文件名中包含&;abc&;的文件,但在Monterey上却不行。

有什么问题吗?如何改进这段代码?

帮助非常感谢。

有两个主要的错误:

  1. myFolder是别名指定符。您添加folder关键字,这是一个双重引用,删除as alias在第一行
  2. oneFile是Finder文件指定符,不能附加字符串return。也许文件说明符在Sierra中被静默地强制为字符串。如果你想使用文件引用,那么return语句无论如何都没有意义。

另一个不好的做法是在枚举时修改数组deleted123。创建一个额外的变量

重复循环也没有意义,因为exists (deleted123)总是true,即使你在循环中检查当前项目oneFile,它也总是true

相关内容

  • 没有找到相关文章

最新更新