如何在Windows 7系统关机前运行Python脚本
Windows 7 关机前自动运行Python脚本的解决方法
我帮你梳理下靠谱的实现步骤,之前踩过的坑都给你列出来了:
第一步:先写个批处理文件(避免Python路径/环境问题)
直接在任务计划里调用Python脚本容易因为环境变量或路径问题跑不起来,先写个.bat批处理文件兜底:
@echo off REM 替换成你的Python解释器绝对路径和脚本绝对路径 "C:\Python37\python.exe" "D:\Projects\shutdown_script.py" REM 给脚本留足执行时间,这里设置10秒,可根据脚本需求调整 timeout /t 10 /nobreak >nul
如果你的脚本需要读写文件,记得把脚本里的相对路径都改成绝对路径,或者在批处理开头加一行cd /d "D:\Projects"(切换到脚本所在目录)。
第二步:通过任务计划程序设置关机触发
- 打开「任务计划程序」:可以通过开始菜单搜索,或者控制面板→系统和安全→管理工具里找到它
- 点击右侧「创建基本任务」,跟着向导走:
- 给任务起个好记的名字(比如「关机前执行Python脚本」),点下一步
- 触发条件选「当计算机停止时」,下拉菜单选「关机」,点下一步
- 操作选「启动程序」,点下一步
- 「程序或脚本」那里选你刚才创建的批处理文件路径,点下一步
- 最后一定要勾选「当单击完成时,打开此任务属性的对话框」,再点完成
第三步:关键的属性配置(很多人在这里翻车)
弹出的任务属性对话框里,一定要改这几个设置:
- 常规选项卡:勾选「不管用户是否登录都要运行」,再选「使用最高权限运行」(避免脚本因权限不足执行失败)
- 设置选项卡:取消勾选「如果请求后1分钟内任务未启动,则停止任务」,确保脚本有足够时间执行;同时勾选「允许任务在计划时间之外运行」
- 条件选项卡:如果是笔记本,取消勾选「只有在计算机使用交流电源时才启动此任务」,避免插电池时不触发
第四步:解决脚本执行超时的问题
系统默认关机时等待程序结束的时间很短,如果你的脚本需要跑久一点,可以修改组策略(注意:Windows7家庭版没有组策略编辑器,专业版/旗舰版才有):
- 按下Win+R,输入
gpedit.msc打开组策略编辑器 - 依次展开:计算机配置→管理模板→系统→关机选项
- 双击「关闭会阻止或取消关机的应用程序的自动终止功能」,选「已禁用」(让系统等脚本跑完再关机)
- 双击「设置关机超时」,选「已启用」,设置超时时间(比如30秒,根据脚本需求调整)
测试小技巧
不要直接关机测试!先在任务计划程序里右键你的任务,选「运行」,看脚本是否正常执行,这样能快速排除脚本本身的问题。
内容的提问来源于stack exchange,提问作者python_fan




