AppleScript实现带超时的文件创建等待及错误提示问题
问题原因
原代码里的with timeout机制失效,核心原因是循环内没有任何延迟操作——AppleScript的超时仅针对会阻塞执行的耗时命令,空循环会快速重复运行,系统根本识别不到需要触发超时。
优化方案
给循环加短暂延迟,让超时机制能正常计时,同时整合错误处理逻辑,去掉冗余代码:
set DossierDeBase to path to desktop as text -- 替换成你的实际基础路径 set SetPNG to DossierDeBase & "pdf-lightroom:set copie.png" try with timeout of 5 seconds repeat try -- 尝试转成alias来检测文件是否存在 SetPNG as alias exit repeat -- 文件存在就跳出循环 on error -- 文件不存在时,等0.5秒再重试,降低CPU占用 delay 0.5 end try end repeat display alert "文件已生成!" on error -- 超时触发错误,直接提示并退出 display alert "错误" message "文件未在5秒内生成。" buttons {"确定"} default button 1 quit end try
关键说明
delay 0.5:既减少无意义的CPU消耗,又让超时机制能正确统计时间流逝- 外层
try直接捕获超时错误:不用额外再做一次文件检测,所有逻辑集中在一个块内,结构更简洁 - 超时后直接触发提示并退出,完全符合需求
内容的提问来源于stack exchange,提问作者Vincent Zorzi
相关产品推荐
相关产品推荐

