Mac支持按电源状态区分定时关机:用pmset -c设置插电时23:00关机,-b设置电池时22:30关机,图形界面无法实现双条件调度,仅能设单一时间且拔电后常转为睡眠而非关机。

你想让Mac在插电时每天23:00自动关机、拔掉电源后改用22:30关机,避免电池模式下耗电过久又不想手动切换——系统原生支持按电源状态区分调度,但必须用终端命令实现,图形界面无法设置双条件。
用pmset命令分别设置插电与不插电的关机时间
这一步是唯一能真正区分“电源接入”和“电池供电”两种状态的方法,图形界面里的“定时”功能只响应单一设定,不会随供电状态自动切换。
打开“终端”(Command + 空格 → 输入“终端” → 回车)。
第一步:清空当前所有重复调度,输入 sudo pmset repeat cancel → 回车 → 输入管理员密码(屏幕不显示字符,正常输完回车即可)。
第二步:设置插电时每日23:00关机,输入 sudo pmset -c repeat shutdown MTWRFSU 23:00:00 → 回车 → 输密码。其中 -c 表示仅在连接电源(charger)时生效。
第三步:设置电池供电时每日22:30关机,输入 sudo pmset -b repeat shutdown MTWRFSU 22:30:00 → 回车 → 输密码。其中 -b 表示仅在使用电池(battery)时生效。
第四步:验证是否写入成功,输入 pmset -g sched → 回车。输出中应同时出现两行:一行含 shutdown ... -c,另一行含 shutdown ... -b。若只有一行或无输出,说明某条命令执行失败,需重试。
用系统设置图形界面只能设一个固定关机时间
如果你跳过终端、直接进系统设置,最多只能设一个时间,且该时间在插电和不插电时都会触发——但实际执行逻辑不同:插电时会强制关机;不插电时系统可能转为睡眠而非关机,尤其当有未保存文档或后台任务运行时。
点击左上角苹果菜单 → “系统设置”。
左侧选“电池”(MacBook)或“节能器”(iMac/Mac mini)。
滚动到底部 → 点击“调度”按钮。
勾选“设定以下日期的睡眠、重新启动或关机” → 右侧下拉选“关机” → 输入时间(如23:00)→ 选择“每天” → 点“好”。
【此设置不区分供电状态,拔掉电源后仍会尝试关机,但大概率失败并转为睡眠】。
用快捷指令模拟双条件关机(需配合Shell脚本)
快捷指令本身不能直接读取当前供电状态,但可通过shell命令实时判断,再决定执行哪个关机命令——适合需要弹窗提醒、确认后再执行的场景。
打开“快捷指令”App → 点右上角“+”新建 → 命名为“智能定时关机”。
点“添加操作” → 搜索“运行脚本” → 选“运行Shell脚本” → 在脚本框粘贴以下内容:
#!/bin/zsh
if pmset -g batt | grep -q "AC Power"; then
sudo shutdown -h 23:00
else
sudo shutdown -h 22:30
fi
点击右上角“下一步” → 给快捷指令命名 → 完成。
接着进入“自动化”标签页 → “创建个人自动化” → 选“特定时间” → 设为每天22:55 → 关闭“运行前询问” → 点“完成”。
【首次运行需授权“完全磁盘访问”,否则脚本被拦截】。授权路径:系统设置 → 隐私与安全性 → 完全磁盘访问 → 勾选“快捷指令”。

















