applescript可通过模拟菜单操作或修改视图配置干预finder窗口排序,支持即时排序、固化视图设置及重置默认行为,但需注意窗口状态、多屏适配及仅限原生finder有效。

AppleScript 能直接干预 Finder 窗口的排序行为,但不是“设置默认排序”,而是模拟用户操作或修改底层视图配置。它适合批量重置、按条件触发排序、或与其他自动化流程联动(比如打开某个文件夹后立刻按修改日期排列)。
用 AppleScript 执行一次即时排序
Finder 本身不提供直接设置 sort by 的 AppleScript 命令,但可通过菜单命令触发——本质是调用 GUI 操作:
- 脚本需激活 Finder,并发送“显示→排序方式→修改日期”这类菜单指令
- 必须确保目标窗口已打开且为前台窗口,否则可能作用于错误窗口
- 示例代码片段:
activate
delay 0.3
tell application "System Events"
click menu item "修改日期" of menu "排序方式" of menu item "排序方式" of menu "显示" of menu bar 1 of process "Finder"
end tell
end tell
配合视图选项实现“记住排序”的自动化
AppleScript 可以打开特定文件夹、设好排序、再勾选“记住此窗口的视图设置”,从而固化该路径的默认行为:
根据序列号查询 Apple 设备信息。支持 iPhone、iPad、Mac(MacBook、iMac、Mac mini、Mac Pro、Mac Studio)、Apple Watch、Apple TV 和 iPod。用户提供序列号时,可用于识别设备、查看规格、生产日期/地点、保修状态或获取详细型号信息。
- 先用
open folder "path:to:target"打开目标位置 - 再通过 System Events 模拟 Command+J → 勾选底部复选框 → 点击“好”
- 注意:勾选框在“查看显示选项”面板中,其 UI 元素名称固定为
"Remember this view settings for the folder"(英文系统)或对应本地化字符串 - 若需中文系统适配,建议用属性定位:
checkbox "记住此窗口的视图设置"
重置所有文件夹排序为系统默认
AppleScript 可调用终端命令完成全局清理,比手动操作更可靠:
- 执行
do shell script "defaults delete com.apple.finder NewWindowTargetPath" - 紧接着运行
do shell script "killall Finder" - 这两步等效于清空 Finder 视图偏好缓存,重启后所有新窗口恢复名称升序+图标视图
- 建议加
try块捕获失败,避免因权限或进程卡住中断流程
规避常见陷阱
直接对 Finder 窗口设 position 或 bounds 不影响排序,但会影响脚本稳定性:
- 全屏或最小化状态会阻塞排序菜单点击,需先还原:
perform action "AXZoom" of front window - 多显示器环境下,确保操作的是当前活跃屏幕上的 Finder 窗口(可用
front window's bounds判断坐标是否越界) - 部分第三方 Finder 替代工具(如 ForkLift、Path Finder)不响应标准 AppleScript 排序指令,仅原生 Finder 有效










