✅ 任务计划程序:延迟时间(触发器里面的【延迟任务】,不是在【操作】页面!)
⚠️ 重点:延迟是写在【触发器】里,不是操作页面的启动程序参数。
含义:触发器触发之后,等待指定时长,再执行【操作】里的程序。
适合场景:登录时 / 计算机启动时,等待一段时间,等系统加载完毕,再导入注册表、运行脚本。
图形界面操作步骤
-
打开任务属性 → 切换到【触发器】选项卡
-
选中触发器,点【编辑】(或者新建触发器)
-
在窗口下方高级设置区域,勾选 延迟任务时间 (K)
-
在下拉框选择或输入时间,格式:时:分: 秒
-
示例:00:00:30= 30 秒;00:01:00= 1 分钟
-
确定保存
仅支持这 3 种触发器类型设置延迟:
✅ 当计算机启动时(OnStartup)
✅ 当登录时(OnLogon,最常用,注册表脚本推荐)
✅ 当特定事件发生时(OnEvent)
👉 按计划(每天 / 每周定时)触发器的延迟是随机延迟:任务会在触发时间~延迟时间之间随机某个时刻运行,不是固定等待。
实操示例(登录后延迟 30 秒执行注册表导入脚本)
-
触发器:开始任务:当登录时
-
勾选【延迟任务时间】,填写00:00:30
-
确定
逻辑:你登录成功 → 等待 30 秒 → 才运行 reg.exe 导入 reg 文件
PowerShell 创建带延迟的触发器
# 创建【登录时,延迟30秒】触发器
= New-ScheduledTaskTrigger -AtLogOn -User ":USERNAME" -Delay "00:00:30"
两种延迟区分(极易混淆)
-
触发器延迟(推荐,上面这个) 触发器触发后先等待,等待结束才启动程序。用来解决开机 / 登录系统没加载完,脚本执行失败,适合注册表自动化。
-
脚本内部延迟(备选方案,不推荐) 不使用触发器延迟,在操作参数里写延时,例如 cmd 里 timeout:
-
程序:cmd.exe
-
参数:/c timeout /t 30 && reg import "D:scripttest.reg"
缺点:进程会卡在后台等待,如果任务被重启容易重复执行;优先使用触发器自带延迟。
❗常见坑点
-
找不到 “延迟任务时间” 复选框
-
当前触发器类型不支持(例如每日定时);只有启动 / 登录 / 事件触发器支持固定延时
-
设置延迟,手动点【运行】测试任务时 ✅ 手动运行任务会忽略触发器延迟,立刻直接执行;只有真正自动触发(登录 / 开机)才会等待延迟时间。
-
多个触发器 每条触发器可以独立设置自己的延迟,互不影响。
-
时间格式错误 必须 HH:mm:ss,00:00:30,不能直接写 30。
完整配置小结(注册表导入任务推荐模板)
-
常规:勾选【以最高权限运行】,运行账户按需选 SYSTEM 或者管理员账户
-
触发器:登录时,延迟任务00:00:30
-
操作:程序reg.exe,参数import "D:scripttest.reg",起始于D:script
-
条件:按需设置(一般全部取消空闲,笔记本取消仅交流电源)
-
设置:勾选允许任务按需运行,设置超时停止防止卡死
补充:schtasks 命令行创建带延迟任务
schtasks /create /tn "导入注册表" /tr "reg.exe import ""D:scripttest.reg""" /sc ONLOGON /delay 00:00:30 /ru SYSTEM
/delay后面填写等待时间 mmmm:ss
|