不同系统版本之间Applescript函数的差异

不同系统版本之间Applescript函数的差异,applescript,Applescript,我的Applescript代码在不同的操作系统版本下输出不同的结果。 在10.13.6的系统下 在10.11.6的系统下 10.13.6的顺序已更改,这绝对是一场灾难,因为我需要根据他的顺序对其进行重命名。我想知道是什么原因导致了此顺序的更改。请告知。我根本不会使用列表文件夹 系统事件或Finder正确排序文件 tell application "System Events" name of disk items of folder "Macintosh HD:Path:to:my:

我的Applescript代码在不同的操作系统版本下输出不同的结果。 在10.13.6的系统下

在10.11.6的系统下


10.13.6的顺序已更改,这绝对是一场灾难,因为我需要根据他的顺序对其进行重命名。我想知道是什么原因导致了此顺序的更改。请告知。

我根本不会使用
列表文件夹

系统事件
Finder
正确排序文件

tell application "System Events"
    name of disk items of folder "Macintosh HD:Path:to:my:folder:"
end tell

问题是你的假设有误。macOS文件系统API不保证也从来没有保证以特定顺序返回文件名。即使是经验丰富的Mac开发人员。旧的HFS+文件系统可能按字母顺序排列目录内容,但APFS将其留给客户端软件。可以使用按排序顺序返回文件名的应用程序,也可以自己使用排序例程对其进行排序,或者重新编写脚本,使其可以按任何顺序处理文件名。

谢谢您的帮助!瓦迪安,我试过你的代码,但是输出的顺序(10.13.6)也是随机的,这会与ScriptEditor的版本有关吗?请在使用Finder时提出建议(用
Finder
替换
System Events
,并删除
磁盘
)?那是不可能的。您是否使用自定义排序顺序?我不知道如何使用applescript代码自定义排序,我只想重命名目标文件夹的文件。首先,我准备了一份名单,谁给名单一命名。其次,我得到目标文件夹的文件名列表2。第三,我使用列表1中的数据来使用循环修改列表2中的数据。但是这个问题发生了,如果代码运行在10.11.6上,结果是正确的,如果代码运行在10.13.6上,结果是错误的。在10.11.6,可能存在潜在风险,这正是我所担心的。请善意地告诉你,Foo,Mac OS AppleScript在使用List Folder命令时是否使用排序规则?我在10.11.6上编写的list folder命令已经运行了一年。文件名的输出顺序与在Finder中打开时的顺序相同,但10.13.6系统下的顺序不是。显然不是。顺便说一句,
列表文件夹
不是AppleScript本身的一部分;它是由标准添加脚本添加定义的,已经有一段时间被弃用了。我认为最好的解决方案是使用Shane Stanley,它提供了列出目录和排序结果的命令。