AppleScript中能否将repeat 10 times与until条件组合使用?
AppleScript实现“重复10次或直到Terminal窗口存在即停止”的逻辑
你不能直接编写repeat 10 times or until "Terminal" window exists这样的命令,AppleScript的repeat语句不支持这种复合条件的语法。不过可以通过计数器+循环条件判断的方式实现需求,以下是具体实现:
set repeatCount to 0 repeat while repeatCount < 10 and (windows of application "Terminal" is empty) -- 这里写你每次循环要执行的操作 display dialog "正在执行第" & (repeatCount + 1) & "次循环" -- 示例操作,可替换 set repeatCount to repeatCount + 1 delay 1 -- 可选:添加延迟避免循环过于频繁,单位为秒 end repeat
代码说明:
- 初始化
repeatCount变量记录循环次数,从0开始计数 - 循环条件
repeatCount < 10 and (windows of application "Terminal" is empty):只有当循环次数未到10次,且Terminal没有打开的窗口时,才继续循环 - 每次循环执行完自定义操作后,计数器加1;如果需要控制循环频率,可以添加
delay命令 - 当任一条件不满足(循环次数达到10,或Terminal窗口已存在),循环会自动停止
补充:判断Terminal窗口存在的其他写法
如果你需要更精准的判断(比如特定标题的窗口),可以替换条件为:
-- 判断是否存在任意Terminal窗口 exists window 1 of application "Terminal" -- 判断是否存在标题包含特定内容的Terminal窗口 exists window of application "Terminal" whose name contains "bash"
内容的提问来源于stack exchange,提问作者dauzzie
相关产品推荐
相关产品推荐

