You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AppleScript读取txt日期变量控制脚本执行的异常问题

问题原因

你的代码存在3个核心错误,导致比较逻辑完全不生效:

  • 未实际读取txt文件内容:代码中myFile仅存储了timeDate.txt的文件名字符串,根本没有读取文件内部的日期值,拿文件名和日期做比较没有任何意义
  • 日期类型处理错误:直接写的2021-09-25在AppleScript中不是合法的日期对象,读取到的文本格式日期也需要先转换为AppleScript支持的日期类型才能做大小比较
  • 文件路径未正确拼接:你定义了桌面路径变量desktop_folder但没有用来拼接完整的文件路径,无法定位到桌面的txt文件
修正后代码
-- 拼接桌面txt文件的完整路径
set desktopPath to path to desktop as text
set targetFilePath to desktopPath & "timeDate.txt"

-- 读取文件内容,去除前后空格、换行符避免格式异常
set fileContent to read file targetFilePath as text
set dateStr to trim(fileContent) of me

-- 定义对比的目标日期,转换为AppleScript日期对象
-- 若你系统为中文环境,可写为 set targetDate to date "2021年9月25日 00:00:00"
set targetDate to date "Saturday, 25 September 2021 at 00:00:00"

-- 将文件读取到的日期字符串转换为日期对象
set fileDate to date dateStr

-- 日期比较,满足条件则终止脚本
if fileDate < targetDate then
    error number -128
end if

-- 辅助函数:去除文本首尾的空白字符
on trim(inputText)
    set AppleScript's text item delimiters to {" ", return, linefeed, tab}
    set textItems to text items of inputText
    set AppleScript's text item delimiters to ""
    return textItems as text
end trim
注意事项
  • 请保证timeDate.txt内的日期格式和你当前macOS系统的默认日期格式匹配,否则会出现日期转换报错
  • 如果txt内的日期同时携带时间,代码会自动带入时间维度做比较,不需要额外调整逻辑

内容的提问来源于stack exchange,提问作者kitchen800

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:42:02