Windows计划任务
约 679 字大约 2 分钟
2026-08-29
Windows 上与 Linux Cron 定时任务对应的是任务计划程序(Task Scheduler):定时执行脚本、清理文件、重启服务等。本文覆盖图形界面与命令行两种创建方式,以及"任务没跑"的常见坑。
图形界面创建
- 按
Win+R输入taskschd.msc回车,打开任务计划程序。 - 右侧点创建基本任务,按向导填写:
- 名称:如
每日清理临时文件; - 触发器:如每天 02:00;
- 操作:启动程序;
- 程序或脚本:如
cmd.exe,参数/c "del /q /f %temp%\*"。
- 名称:如
- 完成后在任务库中找到它,右键可运行(立即试跑一次)。
向导之外的必改设置
向导建出来的任务常常"不干活",双击任务 → 属性,按需勾选:
| 设置 | 位置 | 说明 |
|---|---|---|
| 使用最高权限运行 | 常规 | 任务要写系统目录、操作服务时必勾 |
| 不管用户是否登录都要运行 | 常规 | 否则无人登录桌面时任务不执行 |
| 起始于 | 操作 | 脚本用了相对路径时必须填脚本所在目录,否则静默失败 |
| 错过后尽快启动 | 设置 | 错过的时间点(如关机中)补跑一次 |
命令行管理(schtasks)
:: 创建:每天 02:00 以 SYSTEM 身份运行
schtasks /create /tn "NightlyClean" /tr "cmd /c del /q /f %temp%\*" /sc daily /st 02:00 /ru SYSTEM
:: 查看任务详情
schtasks /query /tn "NightlyClean" /v
:: 立即运行 / 结束 / 删除
schtasks /run /tn "NightlyClean"
schtasks /end /tn "NightlyClean"
schtasks /delete /tn "NightlyClean" /f批量部署服务器时命令行方式更高效,脚本化管理思路与 Linux 的 Cron 定时任务一致。
常见问题
任务显示"已运行"但没有效果?
按命中率排序排查:
- "起始于"没填,脚本里的相对路径全部失效——填绝对目录。
- 权限不足:勾选使用最高权限运行,或改用 SYSTEM 账户运行。
- 脚本路径含空格:
/tr参数整体要加引号,内部再嵌套引号时注意转义。
需要管理员权限的程序弹 UAC 卡住?
任务无法响应 UAC 弹窗。把账户设为使用最高权限运行;仍不行的,改用 psexec 以 SYSTEM 身份运行,或调整程序本身的权限要求。
怎么知道任务有没有真的执行?
任务计划程序左侧点任务计划程序库 → 右上启用所有任务历史记录,之后每个任务的"历史记录"页签会显示完整的触发、启动、完成、返回码。返回码非 0 的,结合程序日志与Windows服务器系统日志定位。
