Mac无法直接设置带起止日期的重复关机,需先用pmset schedule添加首尾日任务,再清空重设repeat并手动取消以限定12天范围;或用日历事件联动快捷指令实现图形化区间控制。

你想让Mac在2026年8月25日到9月5日期间,每天23:00自动关机,避开假期后返工前的闲置耗电,又不想每天手动开关定时任务——这需要绕过系统设置里“重复周期”的限制,用终端命令结合一次性调度实现。
用终端设置指定起止日期的每日关机
第一步:打开“终端”App → 输入以下命令并回车:
sudo pmset schedule shutdown "08/25/2026 23:00:00"
第二步:再输入下一条命令,设定结束日的关机(注意:这不是重复任务,而是独立的一次性指令):
sudo pmset schedule shutdown "09/05/2026 23:00:00"
第三步:现在执行命令查看当前所有已排程任务:
pmset -g sched
你会看到两行 shutdown 条目,分别对应8月25日和9月5日。但这样只关两天,中间29天不会执行——必须补上中间每日的重复任务,且不能覆盖已存在的两条。方法是:先取消全部现有排程,再用 repeat 命令重建带日期范围约束的循环。这一步不能跳过,否则系统会把 repeat 和 schedule 混淆导致冲突。
第四步:一次性清空所有已设排程(包括刚加的两条):
sudo pmset schedule cancel && sudo pmset repeat cancel
第五步:重新添加从8月25日起、持续12天的每日关机(含首尾):
sudo pmset repeat shutdown MTWRFSU 23:00:00
【必须立刻执行下一步,否则该repeat任务将无限期运行】
第六步:在8月25日当天凌晨0:01之后,打开终端,运行:
sudo pmset repeat cancel
这条命令会在你设定的区间首日生效后立即停用repeat任务,确保它只在8月25日至9月5日共12天内触发。系统不会自动停止repeat,必须人工干预终止。
用快捷指令+日历事件联动实现区间控制
如果你希望完全免终端、靠图形界面驱动,且能随时暂停或调整,这个方案更稳妥。它不依赖系统级定时器,而是靠日历提醒触发关机动作。
方法一:打开“日历”App → 新建一个日历,命名为“AutoShutdown” → 在该日历中创建一个“全天事件”,标题填“Nightly Shutdown”,起始日期设为2026-08-25,结束日期设为2026-09-05 → 点击右上角“共享”图标 → 选择“提醒”→ 设为“每天 22:55”(提前5分钟弹窗)。
方法二:打开“快捷指令”App → 点击右上角“+” → 命名“Weekend Night Shutdown” → 添加操作“运行脚本”→ 选择“Shell”→ 输入:
shutdown -h now
方法三:回到该快捷指令编辑页 → 点击顶部“自动化”标签 → 点击“创建个人自动化” → 选择“日历事件” → 设置“当事件开始时”→ 选择刚才创建的“Nightly Shutdown”事件 → 关闭“运行前询问”→ 点击“添加操作”→ 搜索“运行快捷指令”→ 选择上面创建的“Weekend Night Shutdown”→ 完成。
注意:此方法要求Mac在事件触发前已解锁登录,且“快捷指令”App已在“系统设置→隐私与安全性→自动化”中获得完全磁盘访问权限,否则脚本无法执行shutdown命令。
验证与临时禁用
① 查看当前所有定时任务:终端中输入 pmset -g sched,确认输出中只有你预期的条目,没有残留的旧任务。
② 若某天需临时跳过关机(比如通宵调试),在22:50前手动执行:
sudo pmset schedule cancel
③ 恢复原计划:只需重新运行当初设置 repeat 的那条命令即可,无需重配日历或快捷指令。

















